Is your feature request related to a problem? Please describe.
When performing an eth_estimateGas, some chains estimate as if the call is made from the zero address, if no from address is specified. On newer chains, there may not be any funds on the zero address which means that when trying to perform message deliveries we think that there are not enough funds to deliver a message, despite the relayer itself having more than enough.
Additional context
Example failure:
cast estimate "0xd9cbf08cac905f78d961a72716ef8eed3ab7e5eb" "0xf7e83aee0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000054000000000000000000000000000000000000000000000000000000000000004ca000000000000000000000000221fa9cbafcd6c1c3d206571cf4427703e023ffa000009a661aa6495bbc3b1df87c495d64897d0204b6065296d7acfef59b67370e7c0cbaa3ac81348a202517e1fc4909562e1aed18737f28ca5e170751188b153571ad82a06911a522857ee8b414822667ff5c5f17955e9aa0d80dd1592a6ae6085ea20c239447f8efd8847862526e55ec3729285a4d664ddb93ca4d59927ddb32d2956d6950eb296c4a2fe536e81b1ae61f712e06fb64f7635fc9267bff400414ff31d20e58769b32a1beaf1ea27375a44095a0d1fb664ce2dd358e7fcbfb78c26a193443509f197af2d2ae3074ddc6fd014ef3b6aae1be73b10737a3b66cfe9d5ca9b77887c22bd8750d34016ac3c66b5ff102dacdd73f6b014e710b51e8022af9a19684c17e8f78fccf63c5124af5b6542d1d665567c75d9aa46324c6749f546ac644e1024b1e744ad4788772038f47b60fa79a73ee3f4dfaaed52ff788365a0905516cefad4e508c098b9a7e1d8feb19955fb02ba9675585078710969d3440f5054e0f9dc3e7fe016e050eff260334f18a5d4fe391d82092319f5964f2e2eb7c1c3a531caaf6997c0f94f63617ba74d6c005c54301bc714f0f5e46e1f272ed7b26d583490c6ceeb450aecdc82e28293031d10c7d73bf85e57bf041a97360aa2c5d99cc1df82d9c4b87413eae2ef048f94b4d3554cea73d92b0f7af96e0271c691e2bb5c67add7c6caf302256adedf7ab114da0acfe870d449a3a489f781d659e8beccda7bce9f4e8618b6bd2f4132ce798cdc7a60e7e1460a7299e3c6342a579626d22733e50f526ec2fa19a22b31e8ed50f23cd1fdf94c9154ed3a7609a2f1ff981fe1d3b5c807b281e4683cc6d6315cf95b9ade8641defcb32372f1c126e398ef7a5a2dce0a8a7f68bb74560f8f71837c2c2ebbcbf7fffb42ae1896f13f7c7479a0b46a28b6f55540f89444f63de0378e3d121be09e06cc9ded1c20e65876d36aa0c65e9645644786b620e2dd2ad648ddfcbf4a7e5b1a3a4ecfe7f64667a3f0b7e2f4418588ed35a2458cffeb39b93d26f18d2ab13bdce6aee58e7b99359ec2dfd95a9c16dc00d6ef18b7933a6f8dc65ccb55667138776f7dea101070dc8796e3774df84f40ae0c8229d0d6069e5c8f39a7c299677a09d367fc7b05e3bc380ee652cdc72595f74c7b1043d0e1ffbab734648c838dfb0527d971b602bc216c9619ef0abf5ac974a1ed57f4050aa510dd9c74f508277b39d7973bb2dfccc5eeb0618db8cd74046ff337f0a7bf2c8e03e10f642c1886798d71806ab1e888d9e5ee87d0838c5655cb21c6cb83313b5a631175dff4963772cce9108188b34ac87c81c41e662ee4dd2dd7b2bc707961b1e646c4047669dcb6584f0d8d770daf5d7e7deb2e388ab20e2573d171a88108e79d820e98f26c0b84aa8b2f4aa4968dbb818ea32293237c50ba75ee485f4c22adf2f741400bdf8d6a9cc7df7ecae576221665d7358448818bb4ae4562849e949e17ac16e0be16688e156b5cf15e098c627c0056a9000009a9169a76484eb6027a3c77c8c03b0a2d9f89b18e69500a9fdbc74d4790a238161126e7c670b686affe3f0b251282137b264f803a1c9cd0e7309903b9ef82b420f41b49ca7f2965624435db21798caaf6e5f46c1f2c0955abc8f2c0b735575fddee786ec62d90ec437246e38891930c97a3a210f4d9c804f723218ae5e5c2e1db13d11c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005303000009b50000aef3000000000000000000000000fad1c94469700833717fa8a3017278bc1ca8031c000013fb000000000000000000000000a2cf52064c921c11adcd83588cbea08cc3bff5d848656c6c6f2100000000000000000000000000" --rpc-url https://rpc.testnet.citrea.xyz
Error:
server returned an error response: error code -32603: Revm error: Not enough funds for L1 fee: 247500000000
Example success if from address is set to relayer address:
Problem
Is your feature request related to a problem? Please describe.
When performing an
eth_estimateGas
, some chains estimate as if the call is made from the zero address, if nofrom
address is specified. On newer chains, there may not be any funds on the zero address which means that when trying to perform message deliveries we think that there are not enough funds to deliver a message, despite the relayer itself having more than enough.Additional context
Example failure:
Example success if
from
address is set to relayer address:Solution
Describe the solution you'd like
Set the
from
address to the agent's address when performing anyeth_estimateGas
call.