paradigmxyz / alphanet

Reth AlphaNet is a testnet OP Stack-compatible rollup aimed at enabling experimentation of bleeding edge Ethereum Research.
Apache License 2.0
170 stars 30 forks source link

3074 script transaction failure #68

Closed Jrachman closed 5 months ago

Jrachman commented 6 months ago

Trying to run 3074-invokers's sendEth forge script example with this Docker build of foundry but I'm running into a Transaction failure error.

It shows a successful test simulation before broadcasting, but when it broadcasts to AlphaNet, the transaction fails. My thought is that there is a discrepancy between the way 3074 is implemented in the simulation build which is passing and AlphaNet which is failing. This error did not occur until after 3074-invokers's repo got updated to use foundry-alphanet for foundry things. Weirdly enough though, when running the sendEth forge script with the current version of foundry-alphanet on the Otim Devnet, it works...

Here is the output for reference:

julrach@julrach-s-mac 3074-invokers % make cmd="forge script Executor --sig sendEth(address,address,uint256) $INVOKER_ADDRESS 0x3074ca113074ca113074ca113074ca113074ca11 0.01ether --rpc-url $RPC_URL --broadcast -vvvv"
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
Compiling 26 files with 0.8.24
Solc 0.8.24 finished in 1.77s
Compiler run successful with warnings:
Warning (3805): This is a pre-release compiler version, please do not use it in production.

Warning (2018): Function state mutability can be restricted to pure
  --> src/Auth.sol:43:5:
   |
43 |     function auth(bytes32 commit, Signature memory signature) public returns (bool success) {
   |     ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to pure
  --> src/Auth.sol:56:5:
   |
56 |     function authcall(address to, bytes memory data, uint256 value, uint256 gasLimit) public returns (bool success) {
   |     ^ (Relevant source part starts here and spans across multiple lines).

Traces:
  [54098] Executor::sendEth(0x5FbDB2315678afecb367f032d93F642f64180aa3, 0x3074Ca113074ca113074CA113074CA113074CA11, 10000000000000000 [1e16])
    ├─ [0] VM::addr(<pk>) [staticcall]
    │   └─ ← [Return] 0x29b7D9C8f9c4e158AeDC2bfC31D1931A519682Ed
    ├─ [2512] 0x5FbDB2315678afecb367f032d93F642f64180aa3::nextNonce(0x29b7D9C8f9c4e158AeDC2bfC31D1931A519682Ed) [staticcall]
    │   └─ ← [Return] 0
    ├─ [0] VM::addr(<pk>) [staticcall]
    │   └─ ← [Return] 0x29b7D9C8f9c4e158AeDC2bfC31D1931A519682Ed
    ├─ [0] VM::getNonce(0x29b7D9C8f9c4e158AeDC2bfC31D1931A519682Ed) [staticcall]
    │   └─ ← [Return] 0
    ├─ [1177] 0x5FbDB2315678afecb367f032d93F642f64180aa3::getDigest(0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000055023074ca113074ca113074ca113074ca113074ca11000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 0) [staticcall]
    │   └─ ← [Return] 0xa5dde2dde74c211c6e9f4858203ea6c212807ecc05bfe495df0c20dd8bd64e22
    ├─ [0] VM::sign("<pk>", 0xa5dde2dde74c211c6e9f4858203ea6c212807ecc05bfe495df0c20dd8bd64e22) [staticcall]
    │   └─ ← [Return] 28, 0xa7d19736b0c8d7c143bc5ebb9f676c5207043ea918f78fcc339e5496ed3c285a, 0x0f86e650a01a9a6555917fc44ec3a87a3f53dc471fb63ec6dc94efc1d6b3b78e
    ├─ [0] VM::startBroadcast(<pk>)
    │   └─ ← [Return] 
    ├─ [0] VM::addr(<pk>) [staticcall]
    │   └─ ← [Return] 0x29b7D9C8f9c4e158AeDC2bfC31D1931A519682Ed
    ├─ [30539] 0x5FbDB2315678afecb367f032d93F642f64180aa3::execute(0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000055023074ca113074ca113074ca113074ca113074ca11000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, Signature({ signer: 0x29b7D9C8f9c4e158AeDC2bfC31D1931A519682Ed, yParity: 1, r: 0xa7d19736b0c8d7c143bc5ebb9f676c5207043ea918f78fcc339e5496ed3c285a, s: 0x0f86e650a01a9a6555917fc44ec3a87a3f53dc471fb63ec6dc94efc1d6b3b78e }))
    │   ├─ [0] 0x3074Ca113074ca113074CA113074CA113074CA11::fallback{value: 10000000000000000}()
    │   │   └─ ← [Stop] 
    │   └─ ← [Stop] 
    ├─ [0] VM::stopBroadcast()
    │   └─ ← [Return] 
    └─ ← [Stop] 

Script ran successfully.

## Setting up 1 EVM.
==========================
Simulated On-chain Traces:

  [35039] 0x5FbDB2315678afecb367f032d93F642f64180aa3::execute(0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000055023074ca113074ca113074ca113074ca113074ca11000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, Signature({ signer: 0x29b7D9C8f9c4e158AeDC2bfC31D1931A519682Ed, yParity: 1, r: 0xa7d19736b0c8d7c143bc5ebb9f676c5207043ea918f78fcc339e5496ed3c285a, s: 0x0f86e650a01a9a6555917fc44ec3a87a3f53dc471fb63ec6dc94efc1d6b3b78e }))
    ├─ [0] 0x3074Ca113074ca113074CA113074CA113074CA11::fallback{value: 10000000000000000}()
    │   └─ ← [Stop] 
    └─ ← [Stop] 

==========================

Chain 41144114

Estimated gas price: 0.081543882 gwei

Estimated total gas used for script: 86314

Estimated amount required: 0.000007038378630948 ETH

==========================
##
Sending transactions [0 - 0].
##
Waiting for receipts.

Transactions saved to: /app/foundry/broadcast/Execute.s.sol/41144114/sendEth-latest.json

Sensitive values saved to: /app/foundry/cache/Execute.s.sol/41144114/sendEth-latest.json

Error: 
Transaction Failure: 0x9d7edbd23db203be0a7dda87f7785f7848da051eaf4fe4a52517ac6374c1a3d9
make: *** [foundry] Error 1
fgimenez commented 6 months ago

@Jrachman have you tried to run the script against a local node from https://github.com/otim-xyz/alphanet/blob/main/examples/custom-genesis-dev-node.rs ? that would be very helpful for debugging.

Jrachman commented 5 months ago

Officially resolved!