在NEAR智能合约协议中跟踪承诺链

时间:2020-10-02 10:58:59

标签: nearprotocol

NEAR协议是分片的,分片中的跨合同调用之间的事务是最终的。在某些情况下,确定更长的交易链是有意义的,尤其是当承诺链两次击中同一合同(重新进入)时。

让我们想象一连串的承诺:爱丽丝想购买一个代币,交易通过多个智能合约进行交易,并在链中两次击中一个合约。

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标识Alice的帐户。但是,交易所合约可以知道重入,即tx 1promise 1,并且可以从智能合约执行上下文中解决或推断这一点,以便交易所知道它已经存在为爱丽丝加工贸易?

请注意,爱丽丝可能同时处理两个承诺链,因此signer_account_id不能唯一地标识承诺链。

我正在寻找VMContext,并试图弄清楚这是怎么可能的。

1 个答案:

答案 0 :(得分:2)

在合同环境中,您必须通过参数传递所有必要的信息。

您可以使用NEAR Indexer或JSONRPC EXPERIMENTAL_tx_status方法进行链下获取所有收据及其结果