提交 3aab9499 编写于 作者: T Todd Fleming

get_raw_abi

上级 5ce0f813
...@@ -1572,9 +1572,10 @@ read_only::get_raw_abi_results read_only::get_raw_abi( const get_raw_abi_params& ...@@ -1572,9 +1572,10 @@ read_only::get_raw_abi_results read_only::get_raw_abi( const get_raw_abi_params&
const auto& d = db.db(); const auto& d = db.db();
const auto& accnt = d.get<account_object,by_name>(params.account_name); const auto& accnt = d.get<account_object,by_name>(params.account_name);
// todo: fetch hash from table in eosio account result.abi_hash = fc::sha256::hash( accnt.abi.data(), accnt.abi.size() );
result.code_hash = fc::sha256::hash( accnt.code.data(), accnt.code.size() ); result.code_hash = fc::sha256::hash( accnt.code.data(), accnt.code.size() );
result.abi = blob{{accnt.abi.begin(), accnt.abi.end()}}; if( !params.abi_hash || *params.abi_hash != result.abi_hash )
result.abi = blob{{accnt.abi.begin(), accnt.abi.end()}};
return result; return result;
} }
......
...@@ -182,12 +182,14 @@ public: ...@@ -182,12 +182,14 @@ public:
struct get_raw_abi_params { struct get_raw_abi_params {
name account_name; name account_name;
optional<fc::sha256> abi_hash;
}; };
struct get_raw_abi_results { struct get_raw_abi_results {
name account_name; name account_name;
fc::sha256 code_hash; fc::sha256 code_hash;
chain::blob abi; fc::sha256 abi_hash;
optional<chain::blob> abi;
}; };
...@@ -696,8 +698,8 @@ FC_REFLECT( eosio::chain_apis::read_only::get_code_hash_params, (account_name) ) ...@@ -696,8 +698,8 @@ FC_REFLECT( eosio::chain_apis::read_only::get_code_hash_params, (account_name) )
FC_REFLECT( eosio::chain_apis::read_only::get_abi_params, (account_name) ) FC_REFLECT( eosio::chain_apis::read_only::get_abi_params, (account_name) )
FC_REFLECT( eosio::chain_apis::read_only::get_raw_code_and_abi_params, (account_name) ) FC_REFLECT( eosio::chain_apis::read_only::get_raw_code_and_abi_params, (account_name) )
FC_REFLECT( eosio::chain_apis::read_only::get_raw_code_and_abi_results, (account_name)(wasm)(abi) ) FC_REFLECT( eosio::chain_apis::read_only::get_raw_code_and_abi_results, (account_name)(wasm)(abi) )
FC_REFLECT( eosio::chain_apis::read_only::get_raw_abi_params, (account_name) ) FC_REFLECT( eosio::chain_apis::read_only::get_raw_abi_params, (account_name)(abi_hash) )
FC_REFLECT( eosio::chain_apis::read_only::get_raw_abi_results, (account_name)(code_hash)(abi) ) FC_REFLECT( eosio::chain_apis::read_only::get_raw_abi_results, (account_name)(code_hash)(abi_hash)(abi) )
FC_REFLECT( eosio::chain_apis::read_only::producer_info, (producer_name) ) FC_REFLECT( eosio::chain_apis::read_only::producer_info, (producer_name) )
FC_REFLECT( eosio::chain_apis::read_only::abi_json_to_bin_params, (code)(action)(args) ) FC_REFLECT( eosio::chain_apis::read_only::abi_json_to_bin_params, (code)(action)(args) )
FC_REFLECT( eosio::chain_apis::read_only::abi_json_to_bin_result, (binargs) ) FC_REFLECT( eosio::chain_apis::read_only::abi_json_to_bin_result, (binargs) )
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册