EVM-C: Improve update state callback function

This commit is contained in:
Paweł Bylica 2017-01-20 14:02:35 +01:00 committed by Alex Beregszaszi
parent 104a4a12c3
commit cc35c5d169
3 changed files with 9 additions and 7 deletions

View File

@ -44,6 +44,7 @@ static void query(union evm_variant* result,
static void update(struct evm_env* env,
enum evm_update_key key,
const struct evm_uint160be* addr,
const union evm_variant* arg1,
const union evm_variant* arg2)
{

View File

@ -7,7 +7,7 @@ struct examplevm
{
struct evm_instance instance;
evm_query_state_fn query_fn;
evm_update_fn update_fn;
evm_update_state_fn update_fn;
evm_call_fn call_fn;
evm_get_tx_context_fn get_tx_context_fn;
evm_get_block_hash_fn get_block_hash_fn;
@ -94,7 +94,7 @@ static struct evm_result evm_execute(struct evm_instance* instance,
}
static struct evm_instance* evm_create(evm_query_state_fn query_fn,
evm_update_fn update_fn,
evm_update_state_fn update_fn,
evm_call_fn call_fn,
evm_get_tx_context_fn get_tx_context_fn,
evm_get_block_hash_fn get_block_hash_fn)

View File

@ -315,10 +315,11 @@ enum evm_update_key {
/// - ::EVM_SELFDESTRUCT
/// @param arg1 evm_variant::address The beneficiary address.
/// @param arg2 n/a
typedef void (*evm_update_fn)(struct evm_env* env,
enum evm_update_key key,
const union evm_variant* arg1,
const union evm_variant* arg2);
typedef void (*evm_update_state_fn)(struct evm_env* env,
enum evm_update_key key,
const struct evm_uint160be* address,
const union evm_variant* arg1,
const union evm_variant* arg2);
/// The kind of call-like instruction.
enum evm_call_kind {
@ -376,7 +377,7 @@ struct evm_instance; ///< Forward declaration.
/// @param call_fn Pointer to call callback function. Nonnull.
/// @return Pointer to the created EVM instance.
typedef struct evm_instance* (*evm_create_fn)(evm_query_state_fn query_fn,
evm_update_fn update_fn,
evm_update_state_fn update_fn,
evm_call_fn call_fn,
evm_get_tx_context_fn,
evm_get_block_hash_fn);