Rename CREATE2 argument from bytecodeHash to bytecode and add new method for precomputed bytecode hash (#2087)

* Rename CREATE2 argument from bytecodeHash to bytecode and add new method for precomputed bytecode hash

* Remove only from test

* Fix linter error
This commit is contained in:
Anton Bukov
2020-02-14 17:29:38 +03:00
committed by GitHub
parent 5dfe7215a9
commit 19417c7cd5
3 changed files with 25 additions and 4 deletions

View File

@ -39,10 +39,17 @@ library Create2 {
* @dev Returns the address where a contract will be stored if deployed via {deploy} from a contract located at
* `deployer`. If `deployer` is this contract's address, returns the same value as {computeAddress}.
*/
function computeAddress(bytes32 salt, bytes memory bytecodeHash, address deployer) internal pure returns (address) {
bytes32 bytecodeHashHash = keccak256(bytecodeHash);
function computeAddress(bytes32 salt, bytes memory bytecode, address deployer) internal pure returns (address) {
return computeAddress(salt, keccak256(bytecode), deployer);
}
/**
* @dev Returns the address where a contract will be stored if deployed via {deploy} from a contract located at
* `deployer`. If `deployer` is this contract's address, returns the same value as {computeAddress}.
*/
function computeAddress(bytes32 salt, bytes32 bytecodeHash, address deployer) internal pure returns (address) {
bytes32 _data = keccak256(
abi.encodePacked(bytes1(0xff), deployer, salt, bytecodeHashHash)
abi.encodePacked(bytes1(0xff), deployer, salt, bytecodeHash)
);
return address(bytes20(_data << 96));
}