forge-script - Run a smart contract as a script, building transactions that can be sent onchain.
forge script
[options] path [args...]
Run a smart contract as a script, building transactions that can be sent onchain.
Scripts can be used to apply state transitions on live contracts, or deploy and initialize a complex set of smart contracts using Solidity.
--broadcast
Broadcasts the transactions.
--debug
Open the script in the debugger. Takes precedence over broadcast.
-g
--gas-estimate-multiplier
multiplier
Relative percentage by which to multiply all gas estimates. (i.e. set to 200 to double them)
Default: 130
--json
Output results in JSON format.
Note: The output is under development and prone to change.
--legacy
Use legacy transactions instead of EIP1559 ones. This is auto-enabled for common networks without EIP1559.
--resume
Resumes submitting transactions that failed or timed-out previously.
-s
--sig
signature
The signature of the function you want to call in the contract, or raw calldata.
Default: run()
--skip-simulation
Skips on-chain simulation.
--slow
Makes sure a transaction is sent, only after its previous one has been confirmed and succeeded.
--target-contract
contract_name
The name of the contract you want to run.
--with-gas-price
price
Sets the gas price for broadcasted legacy transactions, or the max fee for broadcasted EIP1559 transactions.
Note: To set the gas price in the execution environment of the script use --gas-price
instead (see below).
{{#include ../common/etherscan-options.md}}
--verify
If it finds a matching broadcast log, it tries to verify every contract found in the receipts.
{{#include ../common/verifier-options.md}}
{{#include ../common/retry-options.md}}
{{#include core-build-options.md}}
--names
Print compiled contract names.
--sizes
Print compiled non-test contract sizes, exiting with code 1 if any of them are above the size limit.
{{#include watch-options.md}}
{{#include ../common/multi-wallet-options.md}}
{{#include evm-options.md}}
{{#include executor-options.md}}
{{#include common-options.md}}
- Run
BroadcastTest
as a script, broadcasting generated transactions on-chainforge script ./test/Broadcast.t.sol --tc BroadcastTest --sig "deploy()" \ -vvv --fork-url $GOERLI_RPC_URL