create.js 592 B

12345678910111213141516171819202122
  1. const RLP = require('rlp');
  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${['ff', deployer.address ?? deployer, saltHex, web3.utils.soliditySha3(bytecode)]
  10. .map(x => x.replace(/0x/, ''))
  11. .join('')}`,
  12. )
  13. .slice(-40),
  14. );
  15. }
  16. module.exports = {
  17. computeCreateAddress,
  18. computeCreate2Address,
  19. };