1234567891011121314151617181920212223 |
- const { rlp } = require('ethereumjs-util');
- function computeCreateAddress(deployer, nonce) {
- return web3.utils.toChecksumAddress(web3.utils.sha3(rlp.encode([deployer.address ?? deployer, nonce])).slice(-40));
- }
- function computeCreate2Address(saltHex, bytecode, deployer) {
- return web3.utils.toChecksumAddress(
- web3.utils
- .sha3(
- '0x' +
- ['ff', deployer.address ?? deployer, saltHex, web3.utils.soliditySha3(bytecode)]
- .map(x => x.replace(/0x/, ''))
- .join(''),
- )
- .slice(-40),
- );
- }
- module.exports = {
- computeCreateAddress,
- computeCreate2Address,
- };
|