我正在为NEAR区块链编写一组交互的智能合约。让我们想象一下以下情形
与单个分片的以太坊不同,NEAR确实以承诺方式进行了合约间的交叉交易。单个跳闸的require()
会自动回滚到整个以太坊交易,但如果它们触发的承诺未能成功完成,则以NEAR智能合约的分片性质,它们本身负责回滚状态更改。
我的问题是如何安全地处理NEAR智能合约之间的承诺链中的失败
try {} catch {}
答案 0 :(得分:3)
通常,您只能在不知道发生错误的情况下,才知道诺言是否成功。可以在https://github.com/near/core-contracts/blob/4f245101d7d029ffb3450c560770db244fc7b3ce/lockup/src/utils.rs#L7处找到这种检查的示例。对您想到的不同错误做出不同反应的用例是什么?