http://www.7klian.com

substrate 合约模块扼要分解(1)

1. 挪用 gas::buy_gas按照gas_limit预收取手续费。这一步是预先收取生意业务提倡人的手续费。假如最后执行完成后,假如 Gas 没用完,会将剩余的 Gas 返还给用户。buy_gas 的代码在 srml/contracts/src/gas.rs。

· put_code: 上传代码, 将筹备好的 WASM 合约代码存储到链上, 假如执行乐成,会返回一个 code_hash, 然后可以通过这个 code_hash 建设合约。先将代码存储到链上的长处是,对付合约内部逻辑沟通而只有初始化参数纷歧样的合约,好比许多以太坊上的许多 ERC20 合约,链上只需要存储一份代码,而不需要每次新建一个合约的时候,都要存储一份反复的代码,这显然是冗余的。

根基观念


https://github.com/paritytech/substrate/pull/3645
· instantiate: 实例化合约, 通过 put_code 返回的 code_hash 并传入初始化参数建设一个合约账户,实例化进程会挪用合约内部的 deploy 函数对合约举办初始化,初始化只有一次。最近 substrate 将合约

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。