contractManagerConfig.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. const {
  2. EvmContract,
  3. DefaultStore,
  4. Store,
  5. getDefaultDeploymentConfig,
  6. } = require("contract_manager");
  7. function convertAddress(address) {
  8. return "0x" + address;
  9. }
  10. function convertChainId(number) {
  11. return "0x" + number.toString(16);
  12. }
  13. function getDefaultConfig(chainName) {
  14. const chain = DefaultStore.chains[chainName];
  15. const { dataSources, governanceDataSource, wormholeConfig } =
  16. getDefaultDeploymentConfig(chain.isMainnet() ? "stable" : "beta");
  17. const emitterChainIds = dataSources.map((dataSource) =>
  18. convertChainId(dataSource.emitterChain)
  19. );
  20. const emitterAddresses = dataSources.map((dataSource) =>
  21. convertAddress(dataSource.emitterAddress)
  22. );
  23. const governanceChainId = convertChainId(governanceDataSource.emitterChain);
  24. const governanceEmitter = convertAddress(governanceDataSource.emitterAddress);
  25. const wormholeInitialSigners =
  26. wormholeConfig.initialGuardianSet.map(convertAddress);
  27. const wormholeGovernanceChainId = convertChainId(
  28. wormholeConfig.governanceChainId
  29. );
  30. const wormholeGovernanceContract = convertAddress(
  31. wormholeConfig.governanceContract
  32. );
  33. return {
  34. governanceEmitter,
  35. governanceChainId,
  36. emitterAddresses,
  37. emitterChainIds,
  38. wormholeInitialSigners,
  39. wormholeGovernanceChainId,
  40. wormholeGovernanceContract,
  41. };
  42. }
  43. function saveConfig(chainName, address) {
  44. const chain = DefaultStore.chains[chainName];
  45. const contract = new EvmContract(chain, address);
  46. DefaultStore.contracts[contract.getId()] = contract;
  47. DefaultStore.saveAllContracts();
  48. console.log("Added the following to your evm contract configs");
  49. console.log(Store.serialize(contract));
  50. }
  51. module.exports = { saveConfig, getDefaultConfig };