【发布时间】:2020-10-02 16:58:55
【问题描述】:
有没有一种工具可以估算合约调用在提交到 NEAR 网络之前会产生多少 gas?
【问题讨论】:
标签: nearprotocol
有没有一种工具可以估算合约调用在提交到 NEAR 网络之前会产生多少 gas?
【问题讨论】:
标签: nearprotocol
目前最好的估计是使用runtime-standalone,它可以处理交易而不必担心共识/网络。这意味着您可以创建账户、部署合约并调用它们,返回的结果包括燃烧和使用了多少气体。不同之处在于燃烧的气体用于执行函数调用,而使用的气体是合约承诺调用使用了多少。
不过,它目前是 MVP 原型,仅用于测试我们的核心合约 here is it being used to test the lockup contract.
如果您的合约方法不调用任何批量承诺而仅调用普通承诺,the mock runtime in near-sdk-as 提供了一种创建帐户和“部署”合约的方法。它通过在内部使用near-vm-runner-standalone 的二进制文件来做到这一点,这是一个生锈的箱子。该二进制文件提供了一个 CLI 来调用单个事务,该事务将被调用合约的当前状态、合约的二进制文件、定义当前上下文的配置文件(谁在调用合约、预付多少 gas 等)作为输入),以及不同费用成本的配置。然后它返回更新后的状态、交易的结果(例如,使用了多少 gas 以及由 promise 调用排队的交易的任何收据)。
near-vm-runner-standalone 也发布到 npm,包名:near-vm,这是 mock 运行时使用的。
这仍然是一个活跃的开发领域,我们希望将独立运行时变成一个有用且易于使用的测试和气体估算工具。
【讨论】:
最简单的方法是提交示例交易并附加超过所需的气体,然后在资源管理器中检查使用了多少气体,例如看 https://explorer.testnet.near.org/transactions/23dgV15pydiVhirWJ4He7TMoyRJM2DUXtcWb7VXFSy2G
已附加 300 Tgas,47 Tgas 用于该给定交易。
【讨论】: