use crate::{
vec::Vec,
};
use crate::name::{
Name,
};
mod intrinsics {
extern "C" {
pub fn set_action_return_value(data: *const u8, data_size: u32);
pub fn get_code_hash(account: u64, struct_version: u32, packed_result: *mut u8, packed_result_len: u32) -> u32;
pub fn get_block_num() -> u32;
}
}
pub fn set_action_return_value(data: Vec<u8>) {
unsafe {
intrinsics::set_action_return_value(data.as_ptr(), data.len() as u32);
}
}
pub fn get_code_hash(account: Name, struct_version: u32) -> Vec<u8> {
let mut packed_result = [0u8; 43];
unsafe {
let ret = intrinsics::get_code_hash(account.n, struct_version, packed_result.as_mut_ptr(), 43u32);
crate::vmapi::eosio::eosio_assert(ret == 43u32, "bad get_code_hash return size");
}
packed_result.to_vec()
}
pub fn get_block_num() -> u32 {
unsafe {
return intrinsics::get_block_num();
}
}