Gnosis-Safe

如果其中一項操作失敗,safe-core-sdk 多發送事務是否會恢復?

  • January 19, 2022

我目前正在使用 Gnosissafe-core-sdksafe-service-client. 我正在建構一些功能,使用 SDK 中的多發送功能將不同數量的令牌批量發送到不同的地址。

我已經建構了它,以便我可以通過核心 sdk 建構事務,然後使用safe-service-client. 此時,交易在 Gnosis Safe 官方 UI 中可見,對於我已經發送的保險庫。它包含在提議的交易中指定的所有操作(代幣轉移)。

我想知道的是,如果其中一項操作/傳輸失敗,交易會發生什麼?我的假設是整個交易都恢復了,並且沒有一個代幣轉移完成,但最好確認一下。

提前致謝。

MultiSend.sol庫要求交易成功,所以是的,如果基礎交易之一失敗,它應該恢復:

https://github.com/gnosis/safe-contracts/blob/main/contracts/libraries/MultiSend.sol#L58-L59

您可以通過預先估計交易的氣體來測試它是否恢復。如果交易失敗,它將無法估算 gas。

safe-core-sdk如果事務也恢復了,應該拋出一個錯誤

引用自:https://ethereum.stackexchange.com/questions/118848