Gnosis-Safe
如何使用 core-sdk 辨識事務是否在 gnosis 安全事務服務上被拒絕
我正在使用
safe-core-sdk
向 Gnosis 安全交易服務提出交易。提出交易後,我會經常通過作業檢查交易是否已執行並成功。我通過使用
getTransaction
的一部分來做到這一點safe-service-client
,它返回一些類型的事務對象SafeMultisigTransactionResponse
。我遇到的問題是,當我通過安全 UI 拒絕交易,然後獲取 tx 時,沒有跡象表明交易已被拒絕。該
isExecuted
屬性為假,該isSuccessful
屬性仍為空。用於鏈上拒絕的 UI 中的安全 tx 散列也不同於建議交易的安全 tx 散列。有沒有辦法可以驗證交易已通過 sdk 被拒絕?
乾杯
實際上,在乙太坊網路中拒絕交易是不可能的。拒絕時發生的幕後情況是,您創建的交易使用與您要拒絕的交易相同的隨機數以及 0 值和空數據。一旦這樣的交易被執行,安全隨機數就會增加並且不能再被重複使用,使得之前的簽名變得無用(隨機數是你簽名的交易雜湊的一部分)。
要知道交易是否被拒絕,您可以檢查 Safe 的 nonce 是否大於交易 nonce 並且
isExecuted
標誌為false
。要檢查交易是否被拒絕或替換,您需要檢查是否存在具有相同隨機數的待處理交易。