Gnosis-Safe

如何使用 core-sdk 辨識事務是否在 gnosis 安全事務服務上被拒絕

  • January 21, 2022

我正在使用safe-core-sdk向 Gnosis 安全交易服務提出交易。

提出交易後,我會經常通過作業檢查交易是否已執行並成功。我通過使用getTransaction的一部分來做到這一點safe-service-client,它返回一些類型的事務對象SafeMultisigTransactionResponse

我遇到的問題是,當我通過安全 UI 拒絕交易,然後獲取 tx 時,沒有跡象表明交易已被拒絕。該isExecuted屬性為假,該isSuccessful屬性仍為空。用於鏈上拒絕的 UI 中的安全 tx 散列也不同於建議交易的安全 tx 散列。

有沒有辦法可以驗證交易已通過 sdk 被拒絕?

乾杯

實際上,在乙太坊網路中拒絕交易是不可能的。拒絕時發生的幕後情況是,您創建的交易使用與您要拒絕的交易相同的隨機數以及 0 值和空數據。一旦這樣的交易被執行,安全隨機數就會增加並且不能再被重複使用,使得之前的簽名變得無用(隨機數是你簽名的交易雜湊的一部分)。

要知道交易是否被拒絕,您可以檢查 Safe 的 nonce 是否大於交易 nonce 並且isExecuted標誌為false。要檢查交易是否被拒絕或替換,您需要檢查是否存在具有相同隨機數的待處理交易。

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