12345678910111213141516171819202122 |
- const RLP = require('rlp');
- 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,
- };
|