CLI command
CLI command development tools for fast testing and simplification.
install: npm i -g opstack-kit
call: ok
Note: 🟣 Required 🟡 Optional
depositTransaction
Deposit ETH, "OptimismPortal.depositTransaction" address.
Command:
ok depositTransaction <Amount>
Amount to Deposit
Option:
- 🟣
-pk
,--privateKey <key>
: Private key for signing the transaction - 🟣
-c1
,--chainIdL1 <id>
: Chain ID for Layer 1 - 🟣
-r1
,--rpcUrlL1 <url>
: RPC URL for Layer 1 - 🟣
-p
,--portal <address>
: Portal contract address - 🟡
-g
,--gasLimit <gas>
: Gas limit for Transaction, '21000' - 🟡
-s1
,--scanL1Url <url>
: Block Explorer URL for Layer 1, 'undefined'
Usage:
ok depositTransaction <Amount> --privateKey <key> --chainIdL1 <id> --rpcUrlL1 <url> --portal <address> --gasLimit <gas> --scanL1Url <url>
initiateWithdrawal
Withdraw ETH, "L2ToL1MessagePasser.initiateWithdrawal" address.
TIP
For ETH Native and CustomGasToken only.
Command:
ok initiateWithdrawal <Amount>
Amount to Withdraw
Option:
- 🟣
-pk
,--privateKey <key>
: Private key for signing the transaction - 🟣
-c2
,--chainIdL2 <id>
: Chain ID for Layer 2 - 🟣
-r2
,--rpcUrlL2 <url>
: RPC URL for Layer 2 - 🟡
-g
,--gasLimit <gas>
: Gas limit for Transaction, '21000' - 🟡
-s2
,--scanL2Url <url>
: Block Explorer URL for Layer 2, 'undefined'
Usage:
ok initiateWithdrawal <Amount> --privateKey <key> --chainIdL2 <id> --rpcUrlL2 <url> --gasLimit <gas> --scanL2Url <url>
prove (proveWithdrawal)
Prove withdrawal using transaction hash, "OptimismPortal.proveWithdrawal" address.
TIP
Non-Fault proofs: disputeGameFactory = 0x_l2OutputOracle
Fault proofs: l2OutputOracle = 0x_disputeGameFactory
Command:
ok prove <WithdrawalTxHashL2>
Transaction hash of the Layer 2 withdrawal
Option:
- 🟣
-pk
,--privateKey <key>
: Private key for signing the transaction - 🟣
-c1
,--chainIdL1 <id>
: Chain ID for Layer 1 - 🟣
-r1
,--rpcUrlL1 <url>
: RPC URL for Layer 1 - 🟣
-c2
,--chainIdL2 <id>
: Chain ID for Layer 2 - 🟣
-r2
,--rpcUrlL2 <url>
: RPC URL for Layer 2 - 🟣
-p
,--portal <address>
: Portal contract address - 🟣
-o
,--l2OutputOracle <address>
: Portal contract address - 🟣
-d
,--disputeGameFactory <address>
: Dispute Game Factory contract address - 🟡
-s1
,--scanL1Url <url>
: Block Explorer URL for Layer 1, 'undefined'
Usage:
ok prove <WithdrawalTxHashL2> --privateKey <key> --chainIdL1 <id> --rpcUrlL1 <url> --chainIdL2 <id> --rpcUrlL2 <url> --portal <address> --l2OutputOracle <address> --disputeGameFactory <address> --scanL1Url <url>
finalize (finalizeWithdrawal)
Finalize withdrawal using transaction hash after proving, "OptimismPortal.finalizeWithdrawal" address.
Command:
ok finalize <WithdrawalTxHashL2>
Transaction hash of the Layer 2 withdrawal
Option:
- 🟣
-pk
,--privateKey <key>
: Private key for signing the transaction - 🟣
-c1
,--chainIdL1 <id>
: Chain ID for Layer 1 - 🟣
-r1
,--rpcUrlL1 <url>
: RPC URL for Layer 1 - 🟣
-c2
,--chainIdL2 <id>
: Chain ID for Layer 2 - 🟣
-r2
,--rpcUrlL2 <url>
: RPC URL for Layer 2 - 🟣
-p
,--portal <address>
: Portal contract address - 🟡
-s1
,--scanL1Url <url>
: Block Explorer URL for Layer 1, 'undefined'
Usage:
ok finalize <WithdrawalTxHashL2> --privateKey <key> --chainIdL1 <id> --rpcUrlL1 <url> --chainIdL2 <id> --rpcUrlL2 <url> --portal <address> --scanL1Url <url>