Skip to content

createSelectFork

function createSelectFork(
string calldata urlOrAlias
) external returns (uint256);
function createSelectFork(
string calldata urlOrAlias,
uint256 block
) external returns (uint256);
function createSelectFork(
string calldata urlOrAlias,
bytes32 transaction
) external returns (uint256);

Creates and selects a new fork from the given endpoint and returns the identifier of the fork. If a block number is passed as an argument, the fork will begin on that block, otherwise it will begin on the latest block.

If a transaction hash is provided, it will roll the fork to the block the transaction was mined in and replays all previously executed transactions.

Create and select a new mainnet fork with the latest block number:

uint256 forkId = vm.createSelectFork(MAINNET_RPC_URL);
assertEq(block.number, 15_171_037); // as of time of writing, 2022-07-19 04:55:27 UTC

Create and select a new mainnet fork with a given block number:

uint256 forkId = vm.createSelectFork(MAINNET_RPC_URL, 1_337_000);
assertEq(block.number, 1_337_000);