Gnosis 安全交易服務 API(Gnosis 鏈)上的 Gas 估算失敗
我目前正在通過添加一個小圖來擴展 CSV Airdrop Gnosis 安全應用程序,該小圖顯示了對生成的交易將使用多少網路塊氣體限制的估計。
我的第一種方法是對交易中每次傳輸將消耗多少氣體進行悲觀估計,並將它們加起來+一些成本/緩衝區。
現在我找到了這個 API:https ://safe-transaction.xdai.gnosis.io/api/v1/safes/{safe-address}/multisig-transactions/estimations/
嘗試使用它時,我總是會遇到:
{ "code": 30, "message": "Gas estimation failed", "arguments": [ "Cannot estimate gas with `eth_estimateGas`: {'code': -32016, 'message': 'The execution failed due to an exception.', 'data': 'Reverted'}" ] }
然後我試圖找出送出 TX 時實際的安全 sdk 使用什麼,並在 Gnosis 鏈上實現它收到相同的錯誤:
請求數據
請求網址:
https://safe-transaction.xdai.gnosis.io/api/v1/safes/0x690738F7fFa5fbD5D90f0047293DecE9a38eA0F9/multisig-transactions/estimations/
{ "to": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", "value": "0", "data": "0x8d80ff0a000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001a700690738f7ffa5fbd5d90f0047293dece9a38ea0f9000000000000000000000000000000000000000000000005f68e8131ecf80000000000000000000000000000000000000000000000000000000000000000000000c20c9c13e853fc64d054b73ff21d3636b2d97eab00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044a9059cbb000000000000000000000000690738f7ffa5fbd5d90f0047293dece9a38ea0f90000000000000000000000000000000000000000000000111ec132c103fffb390022570d137e36099700a9c80e5dddd4a0d353f6c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006442842e0e000000000000000000000000690738f7ffa5fbd5d90f0047293dece9a38ea0f9000000000000000000000000690738f7ffa5fbd5d90f0047293dece9a38ea0f900000000000000000000000000000000000000000000000000000000000013dc00000000000000000000000000000000000000000000000000", "operation": 1 }
響應體
{ "code": 30, "message": "Gas estimation failed", "arguments": [ "Cannot estimate gas with `eth_estimateGas`: {'code': -32016, 'message': 'The execution failed due to an exception.', 'data': 'Reverted'}" ] }
這個估計服務目前在 gnosis 鏈上不能正常工作嗎?我使用該服務的方法是一個好方法嗎?或者我可以以不同的方式估計多發送交易的氣體限制嗎?創建的多重發送交易可以包含原生、erc20、erc721 和 erc1155 傳輸。
使用安全交易(類似於乙太坊交易),如果交易失敗,很容易估計需要多少氣體。
安全服務估計端點返回錯誤,因為它無法使安全事務成功執行,因此無法提供估計。
eth_estimateGas
如果您嘗試估計將始終恢復的事務,您將看到類似的行為。我看了你的交易。您想在一次多發送中執行 Ether 傳輸、ERC20 傳輸和 ERC721 safeTransferFrom。問題在於您選擇的 ERC20 代幣 (vCOW)。此令牌不可轉讓,因此會引發錯誤。使用多重發送,如果其中一個內部事務恢復,則整個事務將恢復,因此不可能成功執行此事務。