github.com/ethereum-optimism/optimism@v1.7.2/packages/contracts-bedrock/scripts/fpac/lpp-estimation.sh (about) 1 #!/bin/bash 2 3 # Default Anvil private key 4 PRIVATE_KEY="0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80" 5 PUB_KEY="$(cast wallet addr $PRIVATE_KEY)" 6 7 # 40 gwei base fee 8 BASE_FEE=40000000000 9 10 # Anvil RPC 11 export ETH_RPC_URL="http://localhost:8545" 12 13 # Start anvil in the background 14 anvil --base-fee $BASE_FEE & 15 # Capture the process ID 16 ANVIL_PID=$! 17 18 # Deploy the `PreimageOracle` contract to anvil. 19 PO_MIN_PROPOSAL_SIZE=10000 20 PO_CHALLENGE_PERIOD=120 21 PO_ADDR=$(forge create PreimageOracle --private-key $PRIVATE_KEY --rpc-url $ETH_RPC_URL --json --constructor-args "${PO_MIN_PROPOSAL_SIZE}" "${PO_CHALLENGE_PERIOD}" 0 | jq -r '.deployedTo') 22 23 # Capture the balance of the submitter prior to submitting all leaves. 24 BALANCE_BEFORE=$(cast balance --rpc-url http://localhost:8545 "$PUB_KEY") 25 BASE_FEE_BEFORE=$(cast 2d "$(cast rpc 'eth_gasPrice' | jq -r)") 26 27 # Run the `SubmitLPP` script to submit the LPP to the `PreimageOracle` contract. 28 forge script scripts/fpac/SubmitLPP.sol \ 29 --sig "post(address)" "$PO_ADDR" \ 30 --private-key $PRIVATE_KEY \ 31 --rpc-url $ETH_RPC_URL \ 32 --broadcast 33 34 BALANCE_AFTER=$(cast balance "$PUB_KEY") 35 BASE_FEE_AFTER=$(cast 2d "$(cast rpc 'eth_gasPrice' | jq -r)") 36 37 echo "Base Fee Before: $BASE_FEE_BEFORE" 38 echo "Base Fee After: $BASE_FEE_AFTER" 39 echo "Balance before: $BALANCE_BEFORE" 40 echo "Balance after: $BALANCE_AFTER" 41 echo "Cost: $(cast from-wei $((BALANCE_BEFORE - BALANCE_AFTER))) ETH" 42 43 # Kill anvil 44 kill $ANVIL_PID