@evmcrispr/module-contracts
v0.11.0
Published
Contract lifecycle commands and helpers for EVML scripts: deploy creation bytecode (CREATE, CREATE2, CREATE3, or mirroring an existing deployment), verify source code on Etherscan V2, inspect deployed code and storage, and compile Solidity from inline sou
Downloads
96
Readme
contracts module
Contract lifecycle commands and helpers for EVML scripts: deploy creation bytecode (CREATE, CREATE2, CREATE3, or mirroring an existing deployment), verify source code on Etherscan V2, inspect deployed code and storage, and compile Solidity from inline source or a URL with the @solidity helpers.
load contractsCommands
| Command | Description | |---------|-------------| | contracts:deploy | Deploy a contract from raw creation bytecode. Binds the predicted address to . Mirror an existing deployment with --mirror-chain / --mirror-address (fetches the original creation bytecode from Etherscan). | | contracts:verify | Submit Solidity Standard JSON Input source code to Etherscan V2 for verification at . Mirror an existing verification with --mirror-chain / --mirror-address, or supply source explicitly with --source. Inside sim:fork this becomes a local dry-run: the source is compiled and checked against the fork's deployed bytecode instead of being sent to Etherscan. |
Helpers
| Helper | Returns | Description |
|--------|---------|-------------|
| @contracts:codeAt | bytes | Return the deployed bytecode at an address. |
| @contracts:next | address | Predict the next contract address deployed by a given account. |
| @contracts:slot.array | bytes32 | Derive the storage slot of element index of a dynamic array declared at a base slot: keccak256(base) + index. |
| @contracts:slot.erc7201 | bytes32 | Derive the root slot of an ERC-7201 namespaced storage layout: keccak256(abi.encode(uint256(keccak256(id)) - 1)) & ~0xff. |
| @contracts:slot.mapping | bytes32 | Derive the storage slot of mapping[key] for a mapping declared at a base slot: keccak256(h(key) . base). |
| @contracts:solidity ⚗️ | bytes | Compile Solidity source (inline text or a http/ipfs URL) and return the creation bytecode, ready for deploy. Options: version:<x.y.z>, runs:, optimizer:off, via-ir, evm:, contract:. |
| @contracts:solidity.compiler ⚗️ | string | Compile Solidity source (inline text or a http/ipfs URL) and return the long compiler version (0.8.26+commit.8a97fa7a), ready for verify --compiler. Pass the same options as the matching @solidity call so the cached compile is reused. |
| @contracts:solidity.contract ⚗️ | string | Compile Solidity source (inline text or a http/ipfs URL) and return the qualified contract name (File.sol:Contract), ready for verify --contract-name. Pass the same options as the matching @solidity call so the cached compile is reused. |
| @contracts:solidity.standardJson ⚗️ | string | Compile Solidity source (inline text or a http/ipfs URL) and return the exact solc Standard JSON Input text, ready for verify --source. Pass the same options as the matching @solidity call so the cached compile is reused. |
| @contracts:storageAt | bytes32 | Read a raw storage slot of a contract. |
