2

https://nomicon.io/RuntimeSpec/Scenarios/CrossContractCall.html中描述了一个跨合约(cross-shard)交易。在这里我们有:alice_near -> travel_agency -> hotel_near -> travel_agency。如果hotel_near失败(最好是一步一步)会发生什么?

4

1 回答 1

1
  • 在失败点,我们停止执行 Wasm 合约;
  • 我们从预付的gas中减去燃烧过的gas(注意不是使用的gas),并用剩余的gas向Alice发出退款交易;
  • 由于hotel_near没有创建任何 Promise,我们不会做任何与 Promise 相关的事情,但如果有的话,我们会在不创建收据的情况下丢弃它们;
  • travel_agency仍在被调用,但回调结果现在表明被调用者已失败(希望travel_agency开发人员添加了代码来优雅地处理这种情况,例如回滚整个预订)。

如果您需要更详细地说明某些部分,请告诉我。

于 2019-11-19T19:49:37.280 回答