提交 c23a8f05 编写于 作者: D Daniel Larimer

implementing push_transactions api #243

上级 d301478e
......@@ -55,7 +55,8 @@ void chain_api_plugin::plugin_startup() {
CHAIN_RO_CALL(abi_json_to_bin),
CHAIN_RO_CALL(abi_bin_to_json),
CHAIN_RW_CALL(push_block),
CHAIN_RW_CALL(push_transaction)
CHAIN_RW_CALL(push_transaction),
CHAIN_RW_CALL(push_transactions)
});
}
......
......@@ -263,9 +263,23 @@ read_write::push_block_results read_write::push_block(const read_write::push_blo
}
read_write::push_transaction_results read_write::push_transaction(const read_write::push_transaction_params& params) {
auto ptrx = db.push_transaction(params, skip_flags);
auto pretty_input = db.transaction_from_variant( params );
auto ptrx = db.push_transaction(pretty_input, skip_flags);
auto pretty_trx = db.transaction_to_variant( ptrx );
return read_write::push_transaction_results{ params.id(), pretty_trx };
return read_write::push_transaction_results{ pretty_input.id(), pretty_trx };
}
read_write::push_transactions_results read_write::push_transactions(const vector<read_write::push_transaction_params>& params) {
push_transactions_results result;
for( const auto& item : params ) {
try {
result.push_back( push_transaction( item ) );
} catch ( const fc::exception& e ) {
result.push_back( read_write::push_transaction_results{ chain::transaction_id_type(),
fc::mutable_variant_object( "error", e.to_detail_string() ) } );
}
}
return result;
}
read_only::get_account_results read_only::get_account( const get_account_params& params )const {
......
......@@ -206,12 +206,17 @@ public:
using push_block_results = empty;
push_block_results push_block(const push_block_params& params);
using push_transaction_params = chain::SignedTransaction;
using push_transaction_params = fc::variant_object;
struct push_transaction_results {
chain::transaction_id_type transaction_id;
fc::variant processed;
};
push_transaction_results push_transaction(const push_transaction_params& params);
using push_transactions_params = vector<push_transaction_params>;
using push_transactions_results = vector<push_transaction_results>;
push_transactions_results push_transactions(const push_transactions_params& params);
};
} // namespace chain_apis
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册