erc4337-entrypoint.js 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. const { ethers } = require('hardhat');
  2. const { setCode } = require('@nomicfoundation/hardhat-network-helpers');
  3. const fs = require('fs');
  4. const path = require('path');
  5. const INSTANCES = {
  6. entrypoint: {
  7. address: '0x0000000071727De22E5E9d8BAf0edAc6f37da032',
  8. abi: JSON.parse(fs.readFileSync(path.resolve(__dirname, '../bin/EntryPoint070.abi'), 'utf-8')),
  9. bytecode: fs.readFileSync(path.resolve(__dirname, '../bin/EntryPoint070.bytecode'), 'hex'),
  10. },
  11. sendercreator: {
  12. address: '0xEFC2c1444eBCC4Db75e7613d20C6a62fF67A167C',
  13. abi: JSON.parse(fs.readFileSync(path.resolve(__dirname, '../bin/SenderCreator070.abi'), 'utf-8')),
  14. bytecode: fs.readFileSync(path.resolve(__dirname, '../bin/SenderCreator070.bytecode'), 'hex'),
  15. },
  16. };
  17. function deployEntrypoint() {
  18. return Promise.all(
  19. Object.entries(INSTANCES).map(([name, { address, abi, bytecode }]) =>
  20. setCode(address, '0x' + bytecode.replace(/0x/, ''))
  21. .then(() => ethers.getContractAt(abi, address))
  22. .then(instance => ({ [name]: instance })),
  23. ),
  24. ).then(namedInstances => Object.assign(...namedInstances));
  25. }
  26. module.exports = {
  27. deployEntrypoint,
  28. };