copyStorage
Signature
function copyStorage(address from, address to) external;
Description
Utility cheatcode to copy storage of from
contract to another to
contract.
Cheatcode is not allowed if the target address has arbitrary storage set.
Examples
Given a contract
contract Counter {
uint256 public count;
function setCount(uint256 x) public {
count = x;
}
}
using copyStorage
cheatcode copies the storage set on an instance to another address:
function testCopyStorage() public {
Counter original = new Counter();
original.setCount(1000);
Counter copy = new Counter();
copy.setCount(1);
// Check initial count on copy.
assertEq(copy.count(), 1);
vm.copyStorage(address(original), address(copy));
// Value is copied from first contract to copy.
assertEq(copy.count(), 1000);
}