域名指向另一个网站久久建筑网企业
news/
2025/9/24 21:19:48/
文章来源:
域名指向另一个网站,久久建筑网企业,网站加速器免费永久,网页搭建1、准备合约
如何写合约#xff0c;与编译之前的文章已经写过了#xff0c;准备好.wasm文件。
2、测试程序
xwasm/wasm/tests at main XuHugo/xwasm GitHub
2.1 读取合约
let modules fs::read(./tests/wasmfile/contract.wasm).unwrap();
2.2预编译合约…1、准备合约
如何写合约与编译之前的文章已经写过了准备好.wasm文件。
2、测试程序
xwasm/wasm/tests at main · XuHugo/xwasm · GitHub
2.1 读取合约
let modules fs::read(./tests/wasmfile/contract.wasm).unwrap();
2.2预编译合约
let engine wasmtime::Engine::new(Config::new().epoch_interruption(true)).unwrap();let aot_bytes match engine.precompile_module(wasm_bytes) {Ok(b) b,Err(_e) return,};
预编译需要借助wasmtime生成一个engine的实例。
2.3准备链的上下文
let metadata Metadata {block_time: 111,block_height: 222,tx_hash: String::from(txhash),};#[derive(Serialize, Deserialize, Debug)]//#[state(contractxq)]struct Param {name: String,age: u64,sex: String,}let a: Param Param {name: String::from(xq),age: 18,sex: String::from(man),};let ctx Context::init(String::from(init_xq),String::from(),String::from(serde_json::to_string(a).unwrap()),Address::from(0xf6b02a2d47b84e845b7e3623355f04tbi0000002),Address::from(0xf6b02a2d47b84e845b7e3623355f04tbi0000002),Address::from(0xf6b02a2d47b84e845b7e3623355f04tbi0000002),100,metadata,false,10000,);
大部分参数没有什么特别的这里需要注意的是合约的参数是json格式需要提前转换好
2.4 运行合约
参数依次是函数名上下文合约字节码token;
let ret WasmtimeRuntime::execute(init_xq, ctx, aot_bytes, 0);match ret {Ok(r) println!({:?}, r),Err(e) println!({:?}, e),}
init_xq这个函数可以看一下合约里虽然没有这个名字的函数但是却可以正常调用这是因为我们用宏修改了名字让每个合约的初始化函数都统一为init_xxx.
#[init(contract xq, payable)]
fn initC: Context Copy(ctx: C, _amoun3: u64) - CResultRetValue
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/916253.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!