rust_chain/vmapi/off_chain/eosio_ex.rs
1use crate::{
2 // vec,
3 vec::Vec,
4};
5
6use chaintester::{
7 get_vm_api_client,
8 interfaces::{
9 TApplySyncClient,
10 }
11};
12
13use crate::name::{
14 Name,
15};
16
17// void set_action_return_value(const char *data, uint32_t data_size);
18pub fn set_action_return_value(data: Vec<u8>) {
19 let ret = get_vm_api_client().set_action_return_value(data);
20 ret.unwrap();
21}
22
23// uint32_t get_code_hash(capi_name account, uint32_t struct_version, char* packed_result, uint32_t packed_result_len)
24pub fn get_code_hash(account: Name, struct_version: u32) -> Vec<u8> {
25 let ret = get_vm_api_client().get_code_hash(account.n.into(), struct_version as i64);
26 ret.unwrap()
27}
28
29// uint32_t get_block_num();
30pub fn get_block_num() -> u32 {
31 let ret = get_vm_api_client().get_block_num();
32 ret.unwrap() as u32
33}
34
35// void sha3( const char* data, uint32_t data_len, char* hash, uint32_t hash_len, int32_t keccak );
36// int32_t blake2_f( uint32_t rounds, const char* state, uint32_t state_len, const char* msg, uint32_t msg_len,
37// const char* t0_offset, uint32_t t0_len, const char* t1_offset, uint32_t t1_len, int32_t final, char* result, uint32_t result_len);
38// int32_t k1_recover( const char* sig, uint32_t sig_len, const char* dig, uint32_t dig_len, char* pub, uint32_t pub_len);
39// int32_t alt_bn128_add( const char* op1, uint32_t op1_len, const char* op2, uint32_t op2_len, char* result, uint32_t result_len);
40// int32_t alt_bn128_mul( const char* g1, uint32_t g1_len, const char* scalar, uint32_t scalar_len, char* result, uint32_t result_len);
41// int32_t alt_bn128_pair( const char* pairs, uint32_t pairs_len);
42// int32_t mod_exp( const char* base, uint32_t base_len, const char* exp, uint32_t exp_len, const char* mod, uint32_t mod_len, char* result, uint32_t result_len);