Closed rmeissner closed 4 years ago
Apparently this is related to the rpc endpoint. https://rpc.xdaichain.com/
was used and this endpoint uses Nethermind which has a different error format then OpenEthereum and Geth.
web3_clientVersion
: Nethermind/v1.9.13-0-72dba6574-20201019/X64-Linux/Core3.1.9
Payload for testing with a POST request (e.g. via Postman):
Success estimate
{
"jsonrpc": "2.0",
"method": "eth_call",
"params": [
{
"from": "0xb84ef42568a67ab9f27e95e978f85d3ddc0aaf30",
"to": "0xb84ef42568a67ab9f27e95e978f85d3ddc0aaf30",
"value": "0x0",
"data": "0xc4ca3a9c000000000000000000000000c6738ed1eb79fa23941c75b4f437fc65893b547600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000248a29001400000000000000000000000000000000000000000000000000b1a2bc2ec5000000000000000000000000000000000000000000000000000000000000"
},
"latest"
],
"id": 1
}
Response:
{
"jsonrpc": "2.0",
"error": {
"code": -32015,
"message": "VM execution error.",
"data":"revert: <special unicode that I cannot paste in ... see screenshot>"
},
"id": 1
}
Failed estimate
{
"jsonrpc": "2.0",
"method": "eth_call",
"params": [
{
"from": "0xb84ef42568a67ab9f27e95e978f85d3ddc0aaf30",
"to": "0xb84ef42568a67ab9f27e95e978f85d3ddc0aaf30",
"value": "0x0",
"data": "0xc4ca3a9c000000000000000000000000b84ef42568a67ab9f27e95e978f85d3ddc0aaf3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000248a29001400000000000000000000000000000000000000000000000000b1a2bc2ec5000000000000000000000000000000000000000000000000000000000000"
},
"latest"
],
"id": 1
}
Response:
{
"jsonrpc": "2.0",
"error": {
"code": -32015,
"message": "VM execution error.",
"data": "revert"
},
"id": 1
}
To test behaviour with an OpenEthereum
node the https://dai.poa.network
can be used.
Another reason might be that the batched request throws when used via metamask (as the screenshot, shows an MM error before). Maybe @mikheevm has more info.
@alfetopito identified the issue: It's failing on the estimateData call https://github.com/gnosis/safe-react/blob/8efafc1aaa83d731c46048648829002d0079e45c/src/logic/safe/transactions/gasNew.ts#L110-L114
I just checked and seems to not be working yet.
Tried with MM on xDai with both endpoints (from https://www.xdaichain.com/for-developers/developer-resources#json-rpc-endpoints):
I also tried with Nifty wallet (POA wallet) with similar results.
Same thing for Rinkeby with openethereum node. Working fine for geth
endpoint.
I get the regular console errors for the gas estimation, but the value sent to the wallet is way under the needed amount (on MM 400k and 1.2m on Nifty vs ~5m required).
Results per wallet/network:
@dasanra This is still an issue, please see the error below:
Title/Description
Estimating the
safeTxGas
for a Safe transaction fails with non-Geth nodesSteps to reproduce
Create a transaction with an RPC that uses not a Geth node (e.g. on xDai basically all nodes are OpenEthereum / Nethermind)
Expected result
safeTxGas
should be > 0 for valid transactionsObtained result
safeTxGas
is0
and an error is loggedScreenshots
Misc