common-contracts.js 1.2 KB

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