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