Skip to content

accesses

function accesses(
address
) external returns (bytes32[] memory reads, bytes32[] memory writes);

Gets all storage slots that have been read (reads) or written to (writes) on an address.

Note that record must be called first.

/// contract NumsContract {
/// uint256 public num1 = 100; // slot 0
/// uint256 public num2 = 200; // slot 1
/// }
vm.record();
numsContract.num2();
(bytes32[] memory reads, bytes32[] memory writes) = vm.accesses(
address(numsContract)
);
emit log_uint(uint256(reads[0])); // 1