3

如果有一系列动作需要在 NEAR 的智能合约中执行,并通过给定合约的回调进行链接 - 如何为它们分配 gas。

例如:

pub fn some_method(&mut self, ...) -> Promise {
   ...
   Promise::new(other_contract).function_call(...).then(
      ext_self::callback(env::current_account_id(), 0, ????)
   )
}

pub fn callback(&mut self) -> PromiseOrValue<bool> {
   if some_condition {
      self.some_method(...)
   } else {
      PromiseOrValue::Value(true)
   }
}

应该是什么???为这一系列动作正确分配气体?

4

1 回答 1

1

正确的气体分配量取决于远程方法。gas 量就是远程函数调用时可用的预付 gas 量。它不包括调用合约或创建承诺的费用。他们将单独收费。

费用可能会根据远程方法的用途而有所不同。

假设它只是一个没有外部承诺的简单本地方法。如果它不进行大量计算并且不访问大量存储,那么它的执行将相当便宜。所以你可以附加关于10**13气体。

但是,如果远程方法要调用其他 Promise 并进行外部调用,或者计算量更大,那么您需要考虑到这一点。

您使用附加的本地回调也是如此.then。在估算所需的预付 gas 量时使用相同的逻辑。

于 2020-06-10T17:02:27.033 回答