tools/build-evm-deployer-tx/README.md
build-evm-deployer-txBuild and sign the raw, pre-EIP-155 transaction for deploying the EVM deployer bytecode.
cast does not allow for signing a transaction without providing a chain id (EIP-155). However, to create a transaction that can be submitted on many chains, the chain id cannot be included.
This tool exists only to fill the gaps in cast's functionality, and is intended to be used alongside cast.
SIG_HASH="$(nix run .#build-evm-deployer-tx -- signature-hash)"
# the wallet will need to be threaded to cast here (see `cast wallet address --help` for more information)
SIG="$(cast wallet sign --no-hash "$SIG_HASH")"
nix run .#build-evm-deployer-tx -- raw-tx "$SIG"
The generated transaction can then be used with cast publish.
The following source files are used for deployment:
Deployer.sol: ../../evm/scripts/Deployer.solLibString.sol: https://github.com/Vectorized/solady/blob/v0.1.12/src/utils/LibString.solLibBytes.sol: https://github.com/Vectorized/solady/blob/v0.1.12/src/utils/LibBytes.solCREATE3: https://github.com/Vectorized/solady/blob/v0.1.12/src/utils/CREATE3.solThe compiled ABI can be found at ./abi.json.
Compiler settings:
An example verified deployment can be found here, deployed using this key.
This pre-EIP-155 transaction for multi-chain deployments is inspired by the deployment for multicall3.