目前正在使用Gnosis safe-core-sdk和safe-service-client。Am构建了一些功能,批处理使用SDK的多发送特性将不同数量的令牌发送到不同的地址。
我已经构建了它,这样我就可以通过核心sdk构建一个事务,然后使用safe-service-client提出它。此时,事务在Gnosis安全官方UI中是可见的,因为我也发送了它的保险库。它包含在提议的事务中指定的所有操作(令牌传输)。
我想知道的是,如果其中一个操作/传输失败了,事务会发生什么?我的假设是,整个事务会恢复,所有的令牌转移都不会完成,但最好能确认这一点。
提前谢谢。
发布于 2022-01-13 18:07:52
MultiSend.sol库要求事务成功,因此,如果其中一个底层事务失败,它应该恢复:
https://github.com/gnosis/safe-contracts/blob/main/contracts/libraries/MultiSend.sol#L58-L59
您可以通过预先估计事务的气体来测试它是否恢复。如果交易失败,它将无法估算天然气价格。
如果事务也恢复,safe-core-sdk应该抛出一个错误
https://ethereum.stackexchange.com/questions/118848
复制相似问题