nearprotocol - 在 NEAR 智能合约协议(protocol)中跟踪 promise 链

标签 nearprotocol

NEAR 协议(protocol)是分片的,分片中跨合约调用之间的交易是最终的。在某些情况下,识别更长的交易链是有意义的,特别是如果 promise 链两次命中同一个合约(重入)。
让我们想象一个 promise 链:Alice 想要购买一个代币,并且交易通过多个智能合约进行路由,并且两次命中链中的一个合约。

Alice (user) (tx 1) -> 
exchange contract (triggers promise 1) -> 
aggregator contract (triggers promise 2) -> 
pool contact (triggers promise 3) -> 
exchange contract (again)
交易所合约可以识别爱丽丝的账户signer_account_id .但是交换合约能否知道重入,即tx 1promise 1 ,是否有可能从智能合约执行上下文中解决或推断这个问题,以便交易所知道它已经在为 Alice 处理交易?
请注意,Alice 可能同时处理两条 Promise 链,所以 signer_account_id不足以唯一地识别 promise 链。
我正在寻找 VMContext并试图弄清楚这是怎么可能的。

最佳答案

在合约环境中,您必须通过参数传递所有必要的信息。
链下你可以使用 NEAR Indexer或 JSONRPC EXPERIMENTAL_tx_status 获取所有收据及其结果的方法

关于nearprotocol - 在 NEAR 智能合约协议(protocol)中跟踪 promise 链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64170363/

相关文章:

nearprotocol - 合约可以在 NEAR 协议(protocol)中删除自己吗?

nearprotocol - 如何在 NEAR 上创建帐户?

nearprotocol - 如何查看 NEAR 协议(protocol)创世时创建的原始账户结构?

nearprotocol - 如何将在近钱包之外创建的支持分类帐的帐户添加到近钱包?

blockchain - ETH 2.0 和 NEAR 有什么区别?

nearprotocol - 在 near_sdk_rust 中对 UnorderedSet 进行分页

nearprotocol - 函数 getAccountBalance() 不起作用

rust - 访问向量状态并使用Near-SDK-RS对其进行更新

rust - 契约(Contract)错误,消息 : method is not found