nearprotocol - NEAR 跨合约调用(允许一个账户将资金从托管账户释放到另一个账户)

标签 nearprotocol

我正在尝试学习如何允许 1 个帐户(“捐赠匹配器”)将资金存入第二个帐户( this contract ,作为“托管”帐户),第三个帐户(常规“捐助者”)然后被允许触发发送到第四个帐户(“收件人”,例如慈善机构)。

我作为占位符编写的函数可能没有任何意义,因为我假设(如当前所写)它可能会从调用者/签名者而不是托管/ self /契约(Contract)转移资金:

function transferFromEscrow(destinationAccount: AccountId, amount: u128): ContractPromiseBatch {
  // TODO: Fix this function!
  const toDestinationAccount = ContractPromiseBatch.create(destinationAccount);
  return toDestinationAccount.transfer(amount);
}

感谢您的帮助!

official NEAR repo让我期待在 index.ts 中看到工作示例和 02.using-multiple-calls ,但我没有看到。

我也把这个问题发到了https://github.com/near-examples/cross-contract-calls/issues/13

最佳答案

如前所述here ,没有办法从其他账户提取/转移代币,所以你应该设计你的合约,要求用户将一些代币存入你的合约(通过类似存款的函数调用附加代币)。在核心合约中有这种模式的很好的例子:

  • lockup contract根据时间表锁定资金
  • staking-pool锁定委托(delegate)股份的代币
  • multisig contract通过使用带有 future 调用的所有参数的 add_request 函数和接受先前请求并执行它的 confirm 函数,使用两次调用来启用 2FA

关于nearprotocol - NEAR 跨合约调用(允许一个账户将资金从托管账户释放到另一个账户),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70104458/

相关文章:

nearprotocol - 如何查询余额的历史记录

nearprotocol - Near交易的手续费如何获取,哪些操作涉及Near金额?

nearprotocol - 如何从地址调用不同的合约?

security - 我们可以认为基于网络的非插件加密钱包是安全的吗?

nearprotocol - 近 "ExecutionError":"Exceeded the prepaid gas."

nearprotocol - 为什么要删除包含智能合约的 NEAR 账户的访问 key ?

nearprotocol - 在 near_sdk_rust 中对 UnorderedSet 进行分页

nearprotocol - 使用回调链接多个执行时如何分配气体

nearprotocol - 我该如何收取仓储费?

rust - NEAR-sdk #[near_bindgen] 与其他宏冲突