create.js 622 B

1234567891011121314151617181920212223
  1. const { rlp } = require('ethereumjs-util');
  2. function computeCreateAddress(deployer, nonce) {
  3. return web3.utils.toChecksumAddress(web3.utils.sha3(rlp.encode([deployer.address ?? deployer, nonce])).slice(-40));
  4. }
  5. function computeCreate2Address(saltHex, bytecode, deployer) {
  6. return web3.utils.toChecksumAddress(
  7. web3.utils
  8. .sha3(
  9. '0x' +
  10. ['ff', deployer.address ?? deployer, saltHex, web3.utils.soliditySha3(bytecode)]
  11. .map(x => x.replace(/0x/, ''))
  12. .join(''),
  13. )
  14. .slice(-40),
  15. );
  16. }
  17. module.exports = {
  18. computeCreateAddress,
  19. computeCreate2Address,
  20. };