SputnikVM C Bindings
|
SputnikVM FFI Bindings. More...
Go to the source code of this file.
Classes | |
struct | sputnikvm_address |
struct | sputnikvm_gas |
struct | sputnikvm_u256 |
struct | sputnikvm_h256 |
struct | sputnikvm_transaction |
struct | sputnikvm_header_params |
struct | sputnikvm_require_value_account_storage |
union | sputnikvm_require_value |
struct | sputnikvm_require |
struct | sputnikvm_log |
struct | sputnikvm_account_change_value_balance |
struct | sputnikvm_account_change_value_all |
union | sputnikvm_account_change_value |
struct | sputnikvm_account_change |
struct | sputnikvm_account_change_storage |
Typedefs | |
typedef unsigned char | sputnikvm_action |
typedef struct sputnikvm_vm_S | sputnikvm_vm_t |
Enumerations | |
enum | sputnikvm_require_type { none, account, account_code, account_storage, blockhash } |
enum | sputnikvm_account_change_type { increase_balance, decrease_balance, full, create, removed } |
Variables | |
const unsigned char | CALL_ACTION |
const unsigned char | CREATE_ACTION |
SputnikVM FFI Bindings.
typedef unsigned char sputnikvm_action |
Action item used in a transaction, can be either CALL_ACTION or CREATE_ACTION.
typedef struct sputnikvm_vm_S sputnikvm_vm_t |
int sputnikvm_account_changes_copy_code | ( | sputnikvm_vm_t * | vm, |
sputnikvm_address | address, | ||
unsigned char * | w, | ||
unsigned int | len | ||
) |
Copy code for a single account change entry.
void sputnikvm_account_changes_copy_info | ( | sputnikvm_vm_t * | vm, |
sputnikvm_account_change * | w, | ||
unsigned int | len | ||
) |
Copy account change information.
int sputnikvm_account_changes_copy_storage | ( | sputnikvm_vm_t * | vm, |
sputnikvm_address | address, | ||
sputnikvm_account_change_storage * | w, | ||
unsigned int | len | ||
) |
Copy storage value for a single account change entry. Note that storage values are unordered.
unsigned int sputnikvm_account_changes_len | ( | sputnikvm_vm_t * | vm | ) |
Get the account change length after the VM has exited.
int sputnikvm_commit_account | ( | sputnikvm_vm_t * | vm, |
sputnikvm_address | address, | ||
sputnikvm_u256 | nonce, | ||
sputnikvm_u256 | balance, | ||
unsigned char * | code, | ||
unsigned int | code_len | ||
) |
Commit a full account value into the VM. Should be used together with RequireError.
int sputnikvm_commit_account_code | ( | sputnikvm_vm_t * | vm, |
sputnikvm_address | address, | ||
unsigned char * | code, | ||
unsigned int | code_len | ||
) |
Commit a partial account code value into the VM. Should be used together with RequireError.
int sputnikvm_commit_account_storage | ( | sputnikvm_vm_t * | vm, |
sputnikvm_address | address, | ||
sputnikvm_u256 | key, | ||
sputnikvm_u256 | value | ||
) |
Commit a single account storage key-value pair into the VM. Should be used together with RequireError.
int sputnikvm_commit_blockhash | ( | sputnikvm_vm_t * | vm, |
sputnikvm_u256 | number, | ||
sputnikvm_h256 | hash | ||
) |
Commit a block hash value with the specified block number. Should be used together with RequireError.
int sputnikvm_commit_nonexist | ( | sputnikvm_vm_t * | vm, |
sputnikvm_address | address | ||
) |
Mark a given required account as not-existing. Should be used together with RequireError.
sputnikvm_header_params sputnikvm_default_header_params | ( | void | ) |
Default all-zero header parameter value.
sputnikvm_transaction sputnikvm_default_transaction | ( | void | ) |
Default all-zero transaction value.
sputnikvm_require sputnikvm_fire | ( | sputnikvm_vm_t * | vm | ) |
Execute the VM until it reaches a require error.
void sputnikvm_free | ( | sputnikvm_vm_t * | vm | ) |
Free a VM instance.
void sputnikvm_logs_copy_data | ( | sputnikvm_vm_t * | vm, |
unsigned int | log_index, | ||
unsigned char * | data, | ||
unsigned int | data_len | ||
) |
Copy the data field of the given log.
void sputnikvm_logs_copy_info | ( | sputnikvm_vm_t * | vm, |
sputnikvm_log * | log, | ||
unsigned int | log_len | ||
) |
Copy the appended VM logs information after the VM has exited.
unsigned int sputnikvm_logs_len | ( | sputnikvm_vm_t * | vm | ) |
Return the length of the logs after the VM has exited.
sputnikvm_u256 sputnikvm_logs_topic | ( | sputnikvm_vm_t * | vm, |
unsigned int | log_index, | ||
unsigned int | topic_index | ||
) |
Get the given VM logs topic. The log_index and topic_index must be within the limit fetched from logs_len and logs_info.
sputnikvm_vm_t* sputnikvm_new_eip150 | ( | sputnikvm_transaction | transaction, |
sputnikvm_header_params | header | ||
) |
Create a new EIP150 patch EVM instance using the given transaction and header parameters.
sputnikvm_vm_t* sputnikvm_new_eip160 | ( | sputnikvm_transaction | transaction, |
sputnikvm_header_params | header | ||
) |
Create a new EIP160 patch EVM instance using the given transaction and header parameters.
sputnikvm_vm_t* sputnikvm_new_frontier | ( | sputnikvm_transaction | transaction, |
sputnikvm_header_params | header | ||
) |
Create a new frontier patch EVM instance using the given transaction and header parameters.
sputnikvm_vm_t* sputnikvm_new_homestead | ( | sputnikvm_transaction | transaction, |
sputnikvm_header_params | header | ||
) |
Create a new homestead patch EVM instance using the given transaction and header parameters.
sputnikvm_gas sputnikvm_used_gas | ( | sputnikvm_vm_t * | vm | ) |
Return the used gas after the VM has exited.
const unsigned char CALL_ACTION |
const unsigned char CREATE_ACTION |