@hyperlane-xyz/cli 7.3.0 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/dist/cli.js +7 -14
  2. package/dist/cli.js.map +1 -1
  3. package/dist/src/avs/check.d.ts.map +1 -1
  4. package/dist/src/avs/check.js +5 -7
  5. package/dist/src/avs/check.js.map +1 -1
  6. package/dist/src/avs/stakeRegistry.js +1 -1
  7. package/dist/src/avs/stakeRegistry.js.map +1 -1
  8. package/dist/src/commands/config.d.ts.map +1 -1
  9. package/dist/src/commands/config.js +14 -0
  10. package/dist/src/commands/config.js.map +1 -1
  11. package/dist/src/commands/core.d.ts.map +1 -1
  12. package/dist/src/commands/core.js +2 -3
  13. package/dist/src/commands/core.js.map +1 -1
  14. package/dist/src/commands/options.d.ts +1 -0
  15. package/dist/src/commands/options.d.ts.map +1 -1
  16. package/dist/src/commands/options.js +3 -2
  17. package/dist/src/commands/options.js.map +1 -1
  18. package/dist/src/commands/send.d.ts +7 -1
  19. package/dist/src/commands/send.d.ts.map +1 -1
  20. package/dist/src/commands/send.js +16 -6
  21. package/dist/src/commands/send.js.map +1 -1
  22. package/dist/src/commands/signCommands.d.ts +13 -0
  23. package/dist/src/commands/signCommands.d.ts.map +1 -1
  24. package/dist/src/commands/signCommands.js +27 -2
  25. package/dist/src/commands/signCommands.js.map +1 -1
  26. package/dist/src/commands/status.d.ts.map +1 -1
  27. package/dist/src/commands/status.js +1 -2
  28. package/dist/src/commands/status.js.map +1 -1
  29. package/dist/src/commands/strategy.d.ts +13 -0
  30. package/dist/src/commands/strategy.d.ts.map +1 -0
  31. package/dist/src/commands/strategy.js +49 -0
  32. package/dist/src/commands/strategy.js.map +1 -0
  33. package/dist/src/commands/warp.d.ts.map +1 -1
  34. package/dist/src/commands/warp.js +24 -6
  35. package/dist/src/commands/warp.js.map +1 -1
  36. package/dist/src/config/chain.d.ts.map +1 -1
  37. package/dist/src/config/chain.js +19 -1
  38. package/dist/src/config/chain.js.map +1 -1
  39. package/dist/src/config/core.js +2 -2
  40. package/dist/src/config/core.js.map +1 -1
  41. package/dist/src/config/hooks.js +4 -4
  42. package/dist/src/config/hooks.js.map +1 -1
  43. package/dist/src/config/ism.js +3 -3
  44. package/dist/src/config/ism.js.map +1 -1
  45. package/dist/src/config/strategy.d.ts +11 -0
  46. package/dist/src/config/strategy.d.ts.map +1 -0
  47. package/dist/src/config/strategy.js +106 -0
  48. package/dist/src/config/strategy.js.map +1 -0
  49. package/dist/src/config/warp.d.ts.map +1 -1
  50. package/dist/src/config/warp.js +2 -2
  51. package/dist/src/config/warp.js.map +1 -1
  52. package/dist/src/context/context.d.ts +2 -1
  53. package/dist/src/context/context.d.ts.map +1 -1
  54. package/dist/src/context/context.js +40 -5
  55. package/dist/src/context/context.js.map +1 -1
  56. package/dist/src/context/strategies/chain/ChainResolverFactory.d.ts +14 -0
  57. package/dist/src/context/strategies/chain/ChainResolverFactory.d.ts.map +1 -0
  58. package/dist/src/context/strategies/chain/ChainResolverFactory.js +34 -0
  59. package/dist/src/context/strategies/chain/ChainResolverFactory.js.map +1 -0
  60. package/dist/src/context/strategies/chain/MultiChainResolver.d.ts +36 -0
  61. package/dist/src/context/strategies/chain/MultiChainResolver.d.ts.map +1 -0
  62. package/dist/src/context/strategies/chain/MultiChainResolver.js +167 -0
  63. package/dist/src/context/strategies/chain/MultiChainResolver.js.map +1 -0
  64. package/dist/src/context/strategies/chain/SingleChainResolver.d.ts +15 -0
  65. package/dist/src/context/strategies/chain/SingleChainResolver.d.ts.map +1 -0
  66. package/dist/src/context/strategies/chain/SingleChainResolver.js +17 -0
  67. package/dist/src/context/strategies/chain/SingleChainResolver.js.map +1 -0
  68. package/dist/src/context/strategies/chain/types.d.ts +10 -0
  69. package/dist/src/context/strategies/chain/types.d.ts.map +1 -0
  70. package/dist/src/context/strategies/chain/types.js +2 -0
  71. package/dist/src/context/strategies/chain/types.js.map +1 -0
  72. package/dist/src/context/strategies/signer/BaseMultiProtocolSigner.d.ts +19 -0
  73. package/dist/src/context/strategies/signer/BaseMultiProtocolSigner.d.ts.map +1 -0
  74. package/dist/src/context/strategies/signer/BaseMultiProtocolSigner.js +7 -0
  75. package/dist/src/context/strategies/signer/BaseMultiProtocolSigner.js.map +1 -0
  76. package/dist/src/context/strategies/signer/MultiProtocolSignerFactory.d.ts +6 -0
  77. package/dist/src/context/strategies/signer/MultiProtocolSignerFactory.d.ts.map +1 -0
  78. package/dist/src/context/strategies/signer/MultiProtocolSignerFactory.js +47 -0
  79. package/dist/src/context/strategies/signer/MultiProtocolSignerFactory.js.map +1 -0
  80. package/dist/src/context/strategies/signer/MultiProtocolSignerManager.d.ts +51 -0
  81. package/dist/src/context/strategies/signer/MultiProtocolSignerManager.d.ts.map +1 -0
  82. package/dist/src/context/strategies/signer/MultiProtocolSignerManager.js +107 -0
  83. package/dist/src/context/strategies/signer/MultiProtocolSignerManager.js.map +1 -0
  84. package/dist/src/context/types.d.ts +5 -2
  85. package/dist/src/context/types.d.ts.map +1 -1
  86. package/dist/src/deploy/agent.d.ts.map +1 -1
  87. package/dist/src/deploy/agent.js +2 -1
  88. package/dist/src/deploy/agent.js.map +1 -1
  89. package/dist/src/deploy/core.js +3 -2
  90. package/dist/src/deploy/core.js.map +1 -1
  91. package/dist/src/deploy/utils.d.ts +2 -2
  92. package/dist/src/deploy/utils.d.ts.map +1 -1
  93. package/dist/src/deploy/utils.js +11 -8
  94. package/dist/src/deploy/utils.js.map +1 -1
  95. package/dist/src/deploy/warp.d.ts.map +1 -1
  96. package/dist/src/deploy/warp.js +79 -38
  97. package/dist/src/deploy/warp.js.map +1 -1
  98. package/dist/src/read/warp.d.ts.map +1 -1
  99. package/dist/src/read/warp.js +6 -5
  100. package/dist/src/read/warp.js.map +1 -1
  101. package/dist/src/send/message.js +3 -3
  102. package/dist/src/send/message.js.map +1 -1
  103. package/dist/src/send/transfer.d.ts +2 -3
  104. package/dist/src/send/transfer.d.ts.map +1 -1
  105. package/dist/src/send/transfer.js +30 -30
  106. package/dist/src/send/transfer.js.map +1 -1
  107. package/dist/src/status/message.d.ts +1 -2
  108. package/dist/src/status/message.d.ts.map +1 -1
  109. package/dist/src/status/message.js +26 -38
  110. package/dist/src/status/message.js.map +1 -1
  111. package/dist/src/tests/commands/core.d.ts +14 -0
  112. package/dist/src/tests/commands/core.d.ts.map +1 -1
  113. package/dist/src/tests/commands/core.js +70 -0
  114. package/dist/src/tests/commands/core.js.map +1 -1
  115. package/dist/src/tests/commands/helpers.d.ts +34 -7
  116. package/dist/src/tests/commands/helpers.d.ts.map +1 -1
  117. package/dist/src/tests/commands/helpers.js +74 -2
  118. package/dist/src/tests/commands/helpers.js.map +1 -1
  119. package/dist/src/tests/commands/warp.d.ts +5 -0
  120. package/dist/src/tests/commands/warp.d.ts.map +1 -1
  121. package/dist/src/tests/commands/warp.js +13 -0
  122. package/dist/src/tests/commands/warp.js.map +1 -1
  123. package/dist/src/tests/core/core-apply.e2e-test.d.ts.map +1 -0
  124. package/dist/src/tests/{core-apply.e2e-test.js → core/core-apply.e2e-test.js} +3 -3
  125. package/dist/src/tests/core/core-apply.e2e-test.js.map +1 -0
  126. package/dist/src/tests/core/core-check.e2e-test.d.ts +2 -0
  127. package/dist/src/tests/core/core-check.e2e-test.d.ts.map +1 -0
  128. package/dist/src/tests/core/core-check.e2e-test.js +49 -0
  129. package/dist/src/tests/core/core-check.e2e-test.js.map +1 -0
  130. package/dist/src/tests/core/core-deploy.e2e-test.d.ts.map +1 -0
  131. package/dist/src/tests/core/core-deploy.e2e-test.js +165 -0
  132. package/dist/src/tests/core/core-deploy.e2e-test.js.map +1 -0
  133. package/dist/src/tests/core/core-init.e2e-test.d.ts +2 -0
  134. package/dist/src/tests/core/core-init.e2e-test.d.ts.map +1 -0
  135. package/dist/src/tests/core/core-init.e2e-test.js +124 -0
  136. package/dist/src/tests/core/core-init.e2e-test.js.map +1 -0
  137. package/dist/src/tests/core/core-read.e2e-test.d.ts.map +1 -0
  138. package/dist/src/tests/{core-read.e2e-test.js → core/core-read.e2e-test.js} +3 -3
  139. package/dist/src/tests/core/core-read.e2e-test.js.map +1 -0
  140. package/dist/src/tests/warp-apply.e2e-test.js.map +1 -1
  141. package/dist/src/tests/warp-deploy.e2e-test.js +60 -1
  142. package/dist/src/tests/warp-deploy.e2e-test.js.map +1 -1
  143. package/dist/src/tests/warp-init.e2e-test.d.ts +2 -0
  144. package/dist/src/tests/warp-init.e2e-test.d.ts.map +1 -0
  145. package/dist/src/tests/warp-init.e2e-test.js +114 -0
  146. package/dist/src/tests/warp-init.e2e-test.js.map +1 -0
  147. package/dist/src/utils/balances.d.ts +1 -2
  148. package/dist/src/utils/balances.d.ts.map +1 -1
  149. package/dist/src/utils/balances.js +6 -7
  150. package/dist/src/utils/balances.js.map +1 -1
  151. package/dist/src/utils/chains.d.ts +6 -0
  152. package/dist/src/utils/chains.d.ts.map +1 -1
  153. package/dist/src/utils/chains.js +41 -4
  154. package/dist/src/utils/chains.js.map +1 -1
  155. package/dist/src/utils/files.d.ts.map +1 -1
  156. package/dist/src/utils/files.js +5 -2
  157. package/dist/src/utils/files.js.map +1 -1
  158. package/dist/src/utils/output.d.ts +12 -0
  159. package/dist/src/utils/output.d.ts.map +1 -1
  160. package/dist/src/utils/output.js +44 -0
  161. package/dist/src/utils/output.js.map +1 -1
  162. package/dist/src/validator/utils.d.ts +1 -1
  163. package/dist/src/validator/utils.d.ts.map +1 -1
  164. package/dist/src/validator/utils.js +8 -8
  165. package/dist/src/validator/utils.js.map +1 -1
  166. package/dist/src/version.d.ts +1 -1
  167. package/dist/src/version.js +1 -1
  168. package/package.json +7 -5
  169. package/dist/src/tests/core-apply.e2e-test.d.ts.map +0 -1
  170. package/dist/src/tests/core-apply.e2e-test.js.map +0 -1
  171. package/dist/src/tests/core-deploy.e2e-test.d.ts.map +0 -1
  172. package/dist/src/tests/core-deploy.e2e-test.js +0 -55
  173. package/dist/src/tests/core-deploy.e2e-test.js.map +0 -1
  174. package/dist/src/tests/core-read.e2e-test.d.ts.map +0 -1
  175. package/dist/src/tests/core-read.e2e-test.js.map +0 -1
  176. /package/dist/src/tests/{core-apply.e2e-test.d.ts → core/core-apply.e2e-test.d.ts} +0 -0
  177. /package/dist/src/tests/{core-deploy.e2e-test.d.ts → core/core-deploy.e2e-test.d.ts} +0 -0
  178. /package/dist/src/tests/{core-read.e2e-test.d.ts → core/core-read.e2e-test.d.ts} +0 -0
@@ -0,0 +1,51 @@
1
+ import { Signer } from 'ethers';
2
+ import { Logger } from 'pino';
3
+ import { ChainName, ChainSubmissionStrategy, MultiProvider } from '@hyperlane-xyz/sdk';
4
+ import { IMultiProtocolSigner } from './BaseMultiProtocolSigner.js';
5
+ export interface MultiProtocolSignerOptions {
6
+ logger?: Logger;
7
+ key?: string;
8
+ }
9
+ /**
10
+ * @title MultiProtocolSignerManager
11
+ * @dev Context manager for signers across multiple protocols
12
+ */
13
+ export declare class MultiProtocolSignerManager {
14
+ protected readonly submissionStrategy: ChainSubmissionStrategy;
15
+ protected readonly chains: ChainName[];
16
+ protected readonly multiProvider: MultiProvider;
17
+ protected readonly options: MultiProtocolSignerOptions;
18
+ protected readonly signerStrategies: Map<ChainName, IMultiProtocolSigner>;
19
+ protected readonly signers: Map<ChainName, Signer>;
20
+ readonly logger: Logger;
21
+ constructor(submissionStrategy: ChainSubmissionStrategy, chains: ChainName[], multiProvider: MultiProvider, options?: MultiProtocolSignerOptions);
22
+ /**
23
+ * @notice Sets up chain-specific signer strategies
24
+ */
25
+ protected initializeStrategies(): void;
26
+ /**
27
+ * @dev Configures signers for EVM chains in MultiProvider
28
+ */
29
+ getMultiProvider(): Promise<MultiProvider>;
30
+ /**
31
+ * @notice Creates signer for specific chain
32
+ */
33
+ initSigner(chain: ChainName): Promise<Signer>;
34
+ /**
35
+ * @notice Creates signers for all chains
36
+ */
37
+ initAllSigners(): Promise<typeof this.signers>;
38
+ /**
39
+ * @notice Resolves all chain configurations
40
+ */
41
+ private resolveAllConfigs;
42
+ /**
43
+ * @notice Resolves single chain configuration
44
+ */
45
+ private resolveConfig;
46
+ /**
47
+ * @notice Gets private key from strategy
48
+ */
49
+ private extractPrivateKey;
50
+ }
51
+ //# sourceMappingURL=MultiProtocolSignerManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiProtocolSignerManager.d.ts","sourceRoot":"","sources":["../../../../../src/context/strategies/signer/MultiProtocolSignerManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,OAAO,EACL,SAAS,EACT,uBAAuB,EACvB,aAAa,EACd,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGpE,MAAM,WAAW,0BAA0B;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,qBAAa,0BAA0B;IAMnC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,uBAAuB;IAC9D,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE;IACtC,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa;IAC/C,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,0BAA0B;IARxD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,GAAG,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;IAC1E,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACnD,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAGV,kBAAkB,EAAE,uBAAuB,EAC3C,MAAM,EAAE,SAAS,EAAE,EACnB,aAAa,EAAE,aAAa,EAC5B,OAAO,GAAE,0BAA+B;IAY7D;;OAEG;IACH,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAWtC;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC;IAShD;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IASnD;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC;IAapD;;OAEG;YACW,iBAAiB;IAM/B;;OAEG;YACW,aAAa;IAuB3B;;OAEG;YACW,iBAAiB;CAehC"}
@@ -0,0 +1,107 @@
1
+ import { assert, rootLogger } from '@hyperlane-xyz/utils';
2
+ import { ENV } from '../../../utils/env.js';
3
+ import { MultiProtocolSignerFactory } from './MultiProtocolSignerFactory.js';
4
+ /**
5
+ * @title MultiProtocolSignerManager
6
+ * @dev Context manager for signers across multiple protocols
7
+ */
8
+ export class MultiProtocolSignerManager {
9
+ submissionStrategy;
10
+ chains;
11
+ multiProvider;
12
+ options;
13
+ signerStrategies;
14
+ signers;
15
+ logger;
16
+ constructor(submissionStrategy, chains, multiProvider, options = {}) {
17
+ this.submissionStrategy = submissionStrategy;
18
+ this.chains = chains;
19
+ this.multiProvider = multiProvider;
20
+ this.options = options;
21
+ this.logger =
22
+ options?.logger ||
23
+ rootLogger.child({
24
+ module: 'MultiProtocolSignerManager',
25
+ });
26
+ this.signerStrategies = new Map();
27
+ this.signers = new Map();
28
+ this.initializeStrategies();
29
+ }
30
+ /**
31
+ * @notice Sets up chain-specific signer strategies
32
+ */
33
+ initializeStrategies() {
34
+ for (const chain of this.chains) {
35
+ const strategy = MultiProtocolSignerFactory.getSignerStrategy(chain, this.submissionStrategy, this.multiProvider);
36
+ this.signerStrategies.set(chain, strategy);
37
+ }
38
+ }
39
+ /**
40
+ * @dev Configures signers for EVM chains in MultiProvider
41
+ */
42
+ async getMultiProvider() {
43
+ for (const chain of this.chains) {
44
+ const signer = await this.initSigner(chain);
45
+ this.multiProvider.setSigner(chain, signer);
46
+ }
47
+ return this.multiProvider;
48
+ }
49
+ /**
50
+ * @notice Creates signer for specific chain
51
+ */
52
+ async initSigner(chain) {
53
+ const { privateKey } = await this.resolveConfig(chain);
54
+ const signerStrategy = this.signerStrategies.get(chain);
55
+ assert(signerStrategy, `No signer strategy found for chain ${chain}`);
56
+ return signerStrategy.getSigner({ privateKey });
57
+ }
58
+ /**
59
+ * @notice Creates signers for all chains
60
+ */
61
+ async initAllSigners() {
62
+ const signerConfigs = await this.resolveAllConfigs();
63
+ for (const { chain, privateKey } of signerConfigs) {
64
+ const signerStrategy = this.signerStrategies.get(chain);
65
+ if (signerStrategy) {
66
+ this.signers.set(chain, signerStrategy.getSigner({ privateKey }));
67
+ }
68
+ }
69
+ return this.signers;
70
+ }
71
+ /**
72
+ * @notice Resolves all chain configurations
73
+ */
74
+ async resolveAllConfigs() {
75
+ return Promise.all(this.chains.map((chain) => this.resolveConfig(chain)));
76
+ }
77
+ /**
78
+ * @notice Resolves single chain configuration
79
+ */
80
+ async resolveConfig(chain) {
81
+ const signerStrategy = this.signerStrategies.get(chain);
82
+ assert(signerStrategy, `No signer strategy found for chain ${chain}`);
83
+ let privateKey;
84
+ if (this.options.key) {
85
+ this.logger.debug(`Using private key passed via CLI --key flag for chain ${chain}`);
86
+ privateKey = this.options.key;
87
+ }
88
+ else if (ENV.HYP_KEY) {
89
+ this.logger.debug(`Using private key from .env for chain ${chain}`);
90
+ privateKey = ENV.HYP_KEY;
91
+ }
92
+ else {
93
+ privateKey = await this.extractPrivateKey(chain, signerStrategy);
94
+ }
95
+ return { chain, privateKey };
96
+ }
97
+ /**
98
+ * @notice Gets private key from strategy
99
+ */
100
+ async extractPrivateKey(chain, signerStrategy) {
101
+ const strategyConfig = await signerStrategy.getSignerConfig(chain);
102
+ assert(strategyConfig.privateKey, `No private key found for chain ${chain}`);
103
+ this.logger.debug(`Extracting private key from strategy config/user prompt for chain ${chain}`);
104
+ return strategyConfig.privateKey;
105
+ }
106
+ }
107
+ //# sourceMappingURL=MultiProtocolSignerManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiProtocolSignerManager.js","sourceRoot":"","sources":["../../../../../src/context/strategies/signer/MultiProtocolSignerManager.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAG5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAO7E;;;GAGG;AACH,MAAM,OAAO,0BAA0B;IAMhB;IACA;IACA;IACA;IARF,gBAAgB,CAAuC;IACvD,OAAO,CAAyB;IACnC,MAAM,CAAS;IAE/B,YACqB,kBAA2C,EAC3C,MAAmB,EACnB,aAA4B,EAC5B,UAAsC,EAAE;QAHxC,uBAAkB,GAAlB,kBAAkB,CAAyB;QAC3C,WAAM,GAAN,MAAM,CAAa;QACnB,kBAAa,GAAb,aAAa,CAAe;QAC5B,YAAO,GAAP,OAAO,CAAiC;QAE3D,IAAI,CAAC,MAAM;YACT,OAAO,EAAE,MAAM;gBACf,UAAU,CAAC,KAAK,CAAC;oBACf,MAAM,EAAE,4BAA4B;iBACrC,CAAC,CAAC;QACL,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,EAAE,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAED;;OAEG;IACO,oBAAoB;QAC5B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,0BAA0B,CAAC,iBAAiB,CAC3D,KAAK,EACL,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,aAAa,CACnB,CAAC;YACF,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB;QACpB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC5C,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,KAAgB;QAC/B,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAEvD,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxD,MAAM,CAAC,cAAc,EAAE,sCAAsC,KAAK,EAAE,CAAC,CAAC;QAEtE,OAAO,cAAc,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAClB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAErD,KAAK,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,aAAa,EAAE,CAAC;YAClD,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACxD,IAAI,cAAc,EAAE,CAAC;gBACnB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB;QAG7B,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa,CACzB,KAAgB;QAEhB,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxD,MAAM,CAAC,cAAc,EAAE,sCAAsC,KAAK,EAAE,CAAC,CAAC;QAEtE,IAAI,UAAkB,CAAC;QAEvB,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,yDAAyD,KAAK,EAAE,CACjE,CAAC;YACF,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;QAChC,CAAC;aAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,KAAK,EAAE,CAAC,CAAC;YACpE,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB,CAC7B,KAAgB,EAChB,cAAoC;QAEpC,MAAM,cAAc,GAAG,MAAM,cAAc,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACnE,MAAM,CACJ,cAAc,CAAC,UAAU,EACzB,kCAAkC,KAAK,EAAE,CAC1C,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,qEAAqE,KAAK,EAAE,CAC7E,CAAC;QACF,OAAO,cAAc,CAAC,UAAU,CAAC;IACnC,CAAC;CACF"}
@@ -1,7 +1,7 @@
1
1
  import type { ethers } from 'ethers';
2
2
  import type { CommandModule } from 'yargs';
3
3
  import type { IRegistry } from '@hyperlane-xyz/registry';
4
- import type { ChainMap, ChainMetadata, MultiProvider } from '@hyperlane-xyz/sdk';
4
+ import type { ChainMap, ChainMetadata, MultiProvider, WarpCoreConfig } from '@hyperlane-xyz/sdk';
5
5
  export interface ContextSettings {
6
6
  registryUri: string;
7
7
  registryOverrideUri: string;
@@ -10,6 +10,7 @@ export interface ContextSettings {
10
10
  requiresKey?: boolean;
11
11
  disableProxy?: boolean;
12
12
  skipConfirmation?: boolean;
13
+ strategyPath?: string;
13
14
  }
14
15
  export interface CommandContext {
15
16
  registry: IRegistry;
@@ -17,7 +18,9 @@ export interface CommandContext {
17
18
  multiProvider: MultiProvider;
18
19
  skipConfirmation: boolean;
19
20
  key?: string;
20
- signer?: ethers.Signer;
21
+ signerAddress?: string;
22
+ warpCoreConfig?: WarpCoreConfig;
23
+ strategyPath?: string;
21
24
  }
22
25
  export interface WriteCommandContext extends CommandContext {
23
26
  key: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/context/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EACV,QAAQ,EACR,aAAa,EACb,aAAa,EACd,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,SAAS,CAAC;IACpB,aAAa,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IACvC,aAAa,EAAE,aAAa,CAAC;IAC7B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IACzD,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,wBAAwB,CAAC,IAAI,IAAI,aAAa,CACxD,EAAE,EACF,IAAI,GAAG;IAAE,OAAO,EAAE,cAAc,CAAA;CAAE,CACnC,CAAC;AAEF,MAAM,MAAM,6BAA6B,CAAC,IAAI,IAAI,aAAa,CAC7D,EAAE,EACF,IAAI,GAAG;IAAE,OAAO,EAAE,mBAAmB,CAAA;CAAE,CACxC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/context/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EACV,QAAQ,EACR,aAAa,EACb,aAAa,EACb,cAAc,EACf,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,SAAS,CAAC;IACpB,aAAa,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IACvC,aAAa,EAAE,aAAa,CAAC;IAC7B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IACzD,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,wBAAwB,CAAC,IAAI,IAAI,aAAa,CACxD,EAAE,EACF,IAAI,GAAG;IAAE,OAAO,EAAE,cAAc,CAAA;CAAE,CACnC,CAAC;AAEF,MAAM,MAAM,6BAA6B,CAAC,IAAI,IAAI,aAAa,CAC7D,EAAE,EACF,IAAI,GAAG;IAAE,OAAO,EAAE,mBAAmB,CAAA;CAAE,CACxC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/deploy/agent.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAQrD,wBAAsB,sBAAsB,CAAC,EAC3C,OAAO,EACP,WAAW,EACX,WAAW,EACX,sBAAsB,GACvB,EAAE;IACD,OAAO,EAAE,cAAc,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC,iBAyDA"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/deploy/agent.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAQrD,wBAAsB,sBAAsB,CAAC,EAC3C,OAAO,EACP,WAAW,EACX,WAAW,EACX,sBAAsB,GACvB,EAAE;IACD,OAAO,EAAE,cAAc,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC,iBA0DA"}
@@ -4,8 +4,9 @@ import { logBlue, logGreen } from '../logger.js';
4
4
  import { runMultiChainSelectionStep, runSingleChainSelectionStep, } from '../utils/chains.js';
5
5
  import { readJson, runFileSelectionStep } from '../utils/files.js';
6
6
  export async function runKurtosisAgentDeploy({ context, originChain, relayChains, agentConfigurationPath, }) {
7
+ // Future works: decide what to do with this, since its handled in MultiChainResolver - AGENT_KURTOSIS mode
7
8
  if (!originChain) {
8
- originChain = await runSingleChainSelectionStep(context.chainMetadata, 'Select the origin chain');
9
+ originChain = await runSingleChainSelectionStep(context.chainMetadata, 'Select the origin chain:');
9
10
  }
10
11
  if (!relayChains) {
11
12
  const selectedRelayChains = await runMultiChainSelectionStep({
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/deploy/agent.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,EAC3C,OAAO,EACP,WAAW,EACX,WAAW,EACX,sBAAsB,GAMvB;IACC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,WAAW,GAAG,MAAM,2BAA2B,CAC7C,OAAO,CAAC,aAAa,EACrB,yBAAyB,CAC1B,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,mBAAmB,GAAG,MAAM,0BAA0B,CAAC;YAC3D,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,OAAO,EAAE,gCAAgC;YACzC,aAAa,EAAE,CAAC;SACjB,CAAC,CAAC;QACH,WAAW,GAAG,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC5B,OAAO,CACL,IAAI,EACJ,mFAAmF,CACpF,CAAC;QACF,sBAAsB,GAAG,MAAM,oBAAoB,CACjD,WAAW,EACX,mBAAmB,EACnB,cAAc,CACf,CAAC;IACJ,CAAC;IACD,MAAM,iBAAiB,GAAG,QAAQ,CAAM,sBAAsB,CAAC,CAAC;IAEhE,MAAM,oBAAoB,GAAG;QAC3B,IAAI,EAAE,IAAI;QACV,iBAAiB,EAAE,WAAW;QAC9B,YAAY,EAAE,WAAW;QACzB,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;KACrD,CAAC;IAEF,MAAM,qBAAqB,GAAG;QAC5B,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,oBAAoB;KAC3B,CAAC;IAEF,MAAM,0BAA0B,GAAG,QAAQ,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;IACzE,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,0BAA0B,CAAC,CAAC;IAEzE,MAAM,iBAAiB,GAAG,YAAY,CACpC,uDAAuD,EACvD,gBAAgB,EAChB,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,gBAAgB,EAAE,CACrC,CAAC;IAEF,QAAQ,CACN,IAAI,EACJ,0EAA0E,EAC1E,IAAI,EACJ,GAAG,iBAAiB,EAAE,CACvB,CAAC;IACF,OAAO;AACT,CAAC;AAED,MAAM,mBAAmB,GAAG,CAAC,YAAoB,EAAE,EAAE,CACnD,qHAAqH,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/deploy/agent.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,EAC3C,OAAO,EACP,WAAW,EACX,WAAW,EACX,sBAAsB,GAMvB;IACC,2GAA2G;IAC3G,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,WAAW,GAAG,MAAM,2BAA2B,CAC7C,OAAO,CAAC,aAAa,EACrB,0BAA0B,CAC3B,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,mBAAmB,GAAG,MAAM,0BAA0B,CAAC;YAC3D,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,OAAO,EAAE,gCAAgC;YACzC,aAAa,EAAE,CAAC;SACjB,CAAC,CAAC;QACH,WAAW,GAAG,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC5B,OAAO,CACL,IAAI,EACJ,mFAAmF,CACpF,CAAC;QACF,sBAAsB,GAAG,MAAM,oBAAoB,CACjD,WAAW,EACX,mBAAmB,EACnB,cAAc,CACf,CAAC;IACJ,CAAC;IACD,MAAM,iBAAiB,GAAG,QAAQ,CAAM,sBAAsB,CAAC,CAAC;IAEhE,MAAM,oBAAoB,GAAG;QAC3B,IAAI,EAAE,IAAI;QACV,iBAAiB,EAAE,WAAW;QAC9B,YAAY,EAAE,WAAW;QACzB,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;KACrD,CAAC;IAEF,MAAM,qBAAqB,GAAG;QAC5B,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,oBAAoB;KAC3B,CAAC;IAEF,MAAM,0BAA0B,GAAG,QAAQ,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;IACzE,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,0BAA0B,CAAC,CAAC;IAEzE,MAAM,iBAAiB,GAAG,YAAY,CACpC,uDAAuD,EACvD,gBAAgB,EAChB,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,gBAAgB,EAAE,CACrC,CAAC;IAEF,QAAQ,CACN,IAAI,EACJ,0EAA0E,EAC1E,IAAI,EACJ,GAAG,iBAAiB,EAAE,CACvB,CAAC;IACF,OAAO;AACT,CAAC;AAED,MAAM,mBAAmB,GAAG,CAAC,YAAoB,EAAE,EAAE,CACnD,qHAAqH,YAAY,EAAE,CAAC"}
@@ -13,7 +13,7 @@ import { completeDeploy, prepareDeploy, runDeployPlanStep, runPreflightChecksFor
13
13
  export async function runCoreDeploy(params) {
14
14
  const { context, config } = params;
15
15
  let chain = params.chain;
16
- const { signer, isDryRun, chainMetadata, dryRunChain, registry, skipConfirmation, multiProvider, } = context;
16
+ const { isDryRun, chainMetadata, dryRunChain, registry, skipConfirmation, multiProvider, } = context;
17
17
  // Select a dry-run chain if it's not supplied
18
18
  if (dryRunChain) {
19
19
  chain = dryRunChain;
@@ -26,8 +26,9 @@ export async function runCoreDeploy(params) {
26
26
  let apiKeys = {};
27
27
  if (!skipConfirmation)
28
28
  apiKeys = await requestAndSaveApiKeys([chain], chainMetadata, registry);
29
+ const signer = multiProvider.getSigner(chain);
29
30
  const deploymentParams = {
30
- context,
31
+ context: { ...context, signer },
31
32
  chain,
32
33
  config,
33
34
  };
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/deploy/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/deploy/core.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,6 @@ export declare function runDeployPlanStep({ context, chain, }: {
14
14
  }): Promise<void>;
15
15
  export declare function isISMConfig(config: ChainMap<MultisigConfig> | ChainMap<IsmConfig>): boolean;
16
16
  export declare function isZODISMConfig(filepath: string): boolean;
17
- export declare function prepareDeploy(context: WriteCommandContext, userAddress: Address, chains: ChainName[]): Promise<Record<string, BigNumber>>;
18
- export declare function completeDeploy(context: WriteCommandContext, command: string, initialBalances: Record<string, BigNumber>, userAddress: Address, chains: ChainName[]): Promise<void>;
17
+ export declare function prepareDeploy(context: WriteCommandContext, userAddress: Address | null, chains: ChainName[]): Promise<Record<string, BigNumber>>;
18
+ export declare function completeDeploy(context: WriteCommandContext, command: string, initialBalances: Record<string, BigNumber>, userAddress: Address | null, chains: ChainName[]): Promise<void>;
19
19
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/deploy/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAU,MAAM,QAAQ,CAAC;AAE3C,OAAO,EACL,QAAQ,EAER,SAAS,EACT,SAAS,EACT,cAAc,EAEf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAgB,MAAM,sBAAsB,CAAC;AAG7D,OAAO,EAAkB,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAe1E,wBAAsB,2BAA2B,CAAC,EAChD,OAAO,EACP,MAAM,EACN,MAAM,EACN,gBAAgB,GACjB,EAAE;IACD,OAAO,EAAE,mBAAmB,CAAC;IAC7B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IAGf,gBAAgB,CAAC,EAAE,SAAS,EAAE,CAAC;CAChC,iBAsBA;AAED,wBAAsB,iBAAiB,CAAC,EACtC,OAAO,EACP,KAAK,GACN,EAAE;IACD,OAAO,EAAE,mBAAmB,CAAC;IAC7B,KAAK,EAAE,SAAS,CAAC;CAClB,iBAsBA;AAoBD,wBAAgB,WAAW,CACzB,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,GACrD,OAAO,CAET;AAGD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,mBAAmB,EAC5B,WAAW,EAAE,OAAO,EACpB,MAAM,EAAE,SAAS,EAAE,GAClB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAapC;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAC1C,WAAW,EAAE,OAAO,EACpB,MAAM,EAAE,SAAS,EAAE,iBAqBpB"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/deploy/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAU,MAAM,QAAQ,CAAC;AAE3C,OAAO,EACL,QAAQ,EAER,SAAS,EACT,SAAS,EACT,cAAc,EAEf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAgB,MAAM,sBAAsB,CAAC;AAG7D,OAAO,EAAkB,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAe1E,wBAAsB,2BAA2B,CAAC,EAChD,OAAO,EACP,MAAM,EACN,MAAM,EACN,gBAAgB,GACjB,EAAE;IACD,OAAO,EAAE,mBAAmB,CAAC;IAC7B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IAGf,gBAAgB,CAAC,EAAE,SAAS,EAAE,CAAC;CAChC,iBAsBA;AAED,wBAAsB,iBAAiB,CAAC,EACtC,OAAO,EACP,KAAK,GACN,EAAE;IACD,OAAO,EAAE,mBAAmB,CAAC;IAC7B,KAAK,EAAE,SAAS,CAAC;CAClB,iBA2BA;AAoBD,wBAAgB,WAAW,CACzB,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,GACrD,OAAO,CAET;AAGD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,mBAAmB,EAC5B,WAAW,EAAE,OAAO,GAAG,IAAI,EAC3B,MAAM,EAAE,SAAS,EAAE,GAClB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAepC;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAC1C,WAAW,EAAE,OAAO,GAAG,IAAI,EAC3B,MAAM,EAAE,SAAS,EAAE,iBAuBpB"}
@@ -10,7 +10,7 @@ import { assertSigner } from '../utils/keys.js';
10
10
  import { completeDryRun } from './dry-run.js';
11
11
  export async function runPreflightChecksForChains({ context, chains, minGas, chainsToGasCheck, }) {
12
12
  log('Running pre-flight checks for chains...');
13
- const { signer, multiProvider } = context;
13
+ const { multiProvider, skipConfirmation } = context;
14
14
  if (!chains?.length)
15
15
  throw new Error('Empty chain selection');
16
16
  for (const chain of chains) {
@@ -19,15 +19,16 @@ export async function runPreflightChecksForChains({ context, chains, minGas, cha
19
19
  throw new Error(`No chain config found for ${chain}`);
20
20
  if (metadata.protocol !== ProtocolType.Ethereum)
21
21
  throw new Error('Only Ethereum chains are supported for now');
22
+ const signer = multiProvider.getSigner(chain);
23
+ assertSigner(signer);
24
+ logGreen(`✅ ${chain} signer is valid`);
22
25
  }
23
26
  logGreen('✅ Chains are valid');
24
- assertSigner(signer);
25
- logGreen('✅ Signer is valid');
26
- await nativeBalancesAreSufficient(multiProvider, signer, chainsToGasCheck ?? chains, minGas);
27
+ await nativeBalancesAreSufficient(multiProvider, chainsToGasCheck ?? chains, minGas, skipConfirmation);
27
28
  }
28
29
  export async function runDeployPlanStep({ context, chain, }) {
29
- const { signer, chainMetadata: chainMetadataMap, skipConfirmation } = context;
30
- const address = await signer.getAddress();
30
+ const { chainMetadata: chainMetadataMap, multiProvider, skipConfirmation, } = context;
31
+ const address = await multiProvider.getSigner(chain).getAddress();
31
32
  logBlue('\nDeployment plan');
32
33
  logGray('===============');
33
34
  log(`Transaction signer and owner of new contracts: ${address}`);
@@ -71,7 +72,8 @@ export async function prepareDeploy(context, userAddress, chains) {
71
72
  const provider = isDryRun
72
73
  ? getLocalProvider(ENV.ANVIL_IP_ADDR, ENV.ANVIL_PORT)
73
74
  : multiProvider.getProvider(chain);
74
- const currentBalance = await provider.getBalance(userAddress);
75
+ const address = userAddress ?? (await multiProvider.getSigner(chain).getAddress());
76
+ const currentBalance = await provider.getBalance(address);
75
77
  initialBalances[chain] = currentBalance;
76
78
  }));
77
79
  return initialBalances;
@@ -84,7 +86,8 @@ export async function completeDeploy(context, command, initialBalances, userAddr
84
86
  const provider = isDryRun
85
87
  ? getLocalProvider(ENV.ANVIL_IP_ADDR, ENV.ANVIL_PORT)
86
88
  : multiProvider.getProvider(chain);
87
- const currentBalance = await provider.getBalance(userAddress);
89
+ const address = userAddress ?? (await multiProvider.getSigner(chain).getAddress());
90
+ const currentBalance = await provider.getBalance(address);
88
91
  const balanceDelta = initialBalances[chain].sub(currentBalance);
89
92
  if (isDryRun && balanceDelta.lt(0))
90
93
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/deploy/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/deploy/utils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"warp.d.ts","sourceRoot":"","sources":["../../../src/deploy/warp.ts"],"names":[],"mappings":"AAMA,OAAO,EAKL,uBAAuB,EA6BvB,cAAc,EAEd,qBAAqB,EAStB,MAAM,oBAAoB,CAAC;AAe5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAiB1D,UAAU,YAAY;IACpB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,gBAAgB,EAAE,qBAAqB,CAAC;CACzC;AAED,UAAU,eAAgB,SAAQ,YAAY;IAC5C,cAAc,EAAE,cAAc,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,kBAAkB,CAAC,EACvC,OAAO,EACP,6BAA6B,GAC9B,EAAE;IACD,OAAO,EAAE,mBAAmB,CAAC;IAC7B,6BAA6B,CAAC,EAAE,MAAM,CAAC;CACxC,iBAuEA;AAiRD,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,IAAI,CAAC,CAuCf;AAuHD;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,0BAA0B,EAAE,MAAM,GACjC,uBAAuB,CAKzB"}
1
+ {"version":3,"file":"warp.d.ts","sourceRoot":"","sources":["../../../src/deploy/warp.ts"],"names":[],"mappings":"AAOA,OAAO,EAKL,uBAAuB,EAgCvB,cAAc,EAEd,qBAAqB,EAQtB,MAAM,oBAAoB,CAAC;AAe5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAiB1D,UAAU,YAAY;IACpB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,gBAAgB,EAAE,qBAAqB,CAAC;CACzC;AAED,UAAU,eAAgB,SAAQ,YAAY;IAC5C,cAAc,EAAE,cAAc,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,kBAAkB,CAAC,EACvC,OAAO,EACP,6BAA6B,GAC9B,EAAE;IACD,OAAO,EAAE,mBAAmB,CAAC;IAC7B,6BAA6B,CAAC,EAAE,MAAM,CAAC;CACxC,iBA4DA;AAsVD,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,IAAI,CAAC,CAuCf;AAuHD;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,0BAA0B,EAAE,MAAM,GACjC,uBAAuB,CAKzB"}
@@ -1,8 +1,9 @@
1
1
  import { confirm } from '@inquirer/prompts';
2
2
  import { groupBy } from 'lodash-es';
3
3
  import { stringify as yamlStringify } from 'yaml';
4
+ import { ProxyAdmin__factory } from '@hyperlane-xyz/core';
4
5
  import { buildArtifact as coreBuildArtifact } from '@hyperlane-xyz/core/buildArtifact.js';
5
- import { ChainSubmissionStrategySchema, ContractVerifier, EvmERC20WarpModule, EvmERC20WarpRouteReader, EvmIsmModule, ExplorerLicenseType, HypERC20Deployer, HypERC721Deployer, HyperlaneProxyFactoryDeployer, IsmType, TOKEN_TYPE_TO_STANDARD, TxSubmitterType, WarpCoreConfigSchema, WarpRouteDeployConfigSchema, attachContractsMap, connectContractsMap, getTokenConnectionId, hypERC20factories, isCollateralConfig, isTokenMetadata, serializeContracts, } from '@hyperlane-xyz/sdk';
6
+ import { ChainSubmissionStrategySchema, ContractVerifier, EvmERC20WarpModule, EvmERC20WarpRouteReader, EvmHookModule, EvmIsmModule, ExplorerLicenseType, HypERC20Deployer, HypERC721Deployer, HyperlaneProxyFactoryDeployer, IsmType, TOKEN_TYPE_TO_STANDARD, TxSubmitterType, WarpCoreConfigSchema, WarpRouteDeployConfigSchema, attachContractsMap, connectContractsMap, getTokenConnectionId, hypERC20factories, isCollateralTokenConfig, isTokenMetadata, } from '@hyperlane-xyz/sdk';
6
7
  import { ProtocolType, assert, objFilter, objKeys, objMap, promiseObjAll, retryAsync, } from '@hyperlane-xyz/utils';
7
8
  import { readWarpRouteDeployConfig } from '../config/warp.js';
8
9
  import { MINIMUM_WARP_DEPLOY_GAS } from '../consts.js';
@@ -12,7 +13,7 @@ import { getSubmitterBuilder } from '../submit/submit.js';
12
13
  import { indentYamlOrJson, isFile, readYamlOrJson, runFileSelectionStep, writeYamlOrJson, } from '../utils/files.js';
13
14
  import { completeDeploy, prepareDeploy, runPreflightChecksForChains, } from './utils.js';
14
15
  export async function runWarpRouteDeploy({ context, warpRouteDeploymentConfigPath, }) {
15
- const { signer, skipConfirmation, chainMetadata, registry } = context;
16
+ const { skipConfirmation, chainMetadata, registry } = context;
16
17
  if (!warpRouteDeploymentConfigPath ||
17
18
  !isFile(warpRouteDeploymentConfigPath)) {
18
19
  if (skipConfirmation)
@@ -39,12 +40,11 @@ export async function runWarpRouteDeploy({ context, warpRouteDeploymentConfigPat
39
40
  chains: ethereumChains,
40
41
  minGas: MINIMUM_WARP_DEPLOY_GAS,
41
42
  });
42
- const userAddress = await signer.getAddress();
43
- const initialBalances = await prepareDeploy(context, userAddress, ethereumChains);
43
+ const initialBalances = await prepareDeploy(context, null, ethereumChains);
44
44
  const deployedContracts = await executeDeploy(deploymentParams, apiKeys);
45
45
  const warpCoreConfig = await getWarpCoreConfig(deploymentParams, deployedContracts);
46
46
  await writeDeploymentArtifacts(warpCoreConfig, context);
47
- await completeDeploy(context, 'warp', initialBalances, userAddress, ethereumChains);
47
+ await completeDeploy(context, 'warp', initialBalances, null, ethereumChains);
48
48
  }
49
49
  async function runDeployPlanStep({ context, warpDeployConfig }) {
50
50
  const { skipConfirmation } = context;
@@ -59,7 +59,7 @@ async function runDeployPlanStep({ context, warpDeployConfig }) {
59
59
  }
60
60
  async function executeDeploy(params, apiKeys) {
61
61
  logBlue('🚀 All systems ready, captain! Beginning deployment...');
62
- const { warpDeployConfig, context: { registry, multiProvider, isDryRun, dryRunChain }, } = params;
62
+ const { warpDeployConfig, context: { multiProvider, isDryRun, dryRunChain }, } = params;
63
63
  const deployer = warpDeployConfig.isNft
64
64
  ? new HypERC721Deployer(multiProvider)
65
65
  : new HypERC20Deployer(multiProvider); // TODO: replace with EvmERC20WarpModule
@@ -69,8 +69,8 @@ async function executeDeploy(params, apiKeys) {
69
69
  const contractVerifier = new ContractVerifier(multiProvider, apiKeys, coreBuildArtifact, ExplorerLicenseType.MIT);
70
70
  const ismFactoryDeployer = new HyperlaneProxyFactoryDeployer(multiProvider, contractVerifier);
71
71
  // For each chain in WarpRouteConfig, deploy each Ism Factory, if it's not in the registry
72
- // Then return a modified config with the ism address as a string
73
- const modifiedConfig = await deployAndResolveWarpIsm(config, multiProvider, registry, ismFactoryDeployer, contractVerifier);
72
+ // Then return a modified config with the ism and/or hook address as a string
73
+ const modifiedConfig = await resolveWarpIsmAndHook(config, params.context, ismFactoryDeployer, contractVerifier);
74
74
  const deployedContracts = await deployer.deploy(modifiedConfig);
75
75
  logGreen('✅ Warp contract deployments complete');
76
76
  return deployedContracts;
@@ -82,33 +82,29 @@ async function writeDeploymentArtifacts(warpCoreConfig, context) {
82
82
  }
83
83
  log(indentYamlOrJson(yamlStringify(warpCoreConfig, null, 2), 4));
84
84
  }
85
- async function deployAndResolveWarpIsm(warpConfig, multiProvider, registry, ismFactoryDeployer, contractVerifier) {
85
+ async function resolveWarpIsmAndHook(warpConfig, context, ismFactoryDeployer, contractVerifier) {
86
86
  return promiseObjAll(objMap(warpConfig, async (chain, config) => {
87
- if (!config.interchainSecurityModule ||
88
- typeof config.interchainSecurityModule === 'string') {
89
- logGray(`Config Ism is ${!config.interchainSecurityModule
90
- ? 'empty'
91
- : config.interchainSecurityModule}, skipping deployment.`);
92
- return config;
93
- }
94
- logBlue(`Loading registry factory addresses for ${chain}...`);
95
- let chainAddresses = await registry.getChainAddresses(chain);
87
+ const chainAddresses = await context.registry.getChainAddresses(chain);
96
88
  if (!chainAddresses) {
97
- logGray(`Registry factory addresses not found for ${chain}. Deploying...`);
98
- chainAddresses = serializeContracts(await ismFactoryDeployer.deployContracts(chain));
89
+ throw `Registry factory addresses not found for ${chain}.`;
99
90
  }
100
- logGray(`Creating ${config.interchainSecurityModule.type} ISM for ${config.type} token on ${chain} chain...`);
101
- const deployedIsm = await createWarpIsm(chain, warpConfig, multiProvider, {
102
- domainRoutingIsmFactory: chainAddresses.domainRoutingIsmFactory,
103
- staticAggregationHookFactory: chainAddresses.staticAggregationHookFactory,
104
- staticAggregationIsmFactory: chainAddresses.staticAggregationIsmFactory,
105
- staticMerkleRootMultisigIsmFactory: chainAddresses.staticMerkleRootMultisigIsmFactory,
106
- staticMessageIdMultisigIsmFactory: chainAddresses.staticMessageIdMultisigIsmFactory,
107
- staticMerkleRootWeightedMultisigIsmFactory: chainAddresses.staticMerkleRootWeightedMultisigIsmFactory,
108
- staticMessageIdWeightedMultisigIsmFactory: chainAddresses.staticMessageIdWeightedMultisigIsmFactory,
109
- }, contractVerifier);
110
- logGreen(`Finished creating ${config.interchainSecurityModule.type} ISM for ${config.type} token on ${chain} chain.`);
111
- return { ...warpConfig[chain], interchainSecurityModule: deployedIsm };
91
+ config.interchainSecurityModule = await createWarpIsm({
92
+ chain,
93
+ chainAddresses,
94
+ context,
95
+ contractVerifier,
96
+ ismFactoryDeployer,
97
+ warpConfig: config,
98
+ }); // TODO write test
99
+ config.hook = await createWarpHook({
100
+ chain,
101
+ chainAddresses,
102
+ context,
103
+ contractVerifier,
104
+ ismFactoryDeployer,
105
+ warpConfig: config,
106
+ });
107
+ return config;
112
108
  }));
113
109
  }
114
110
  /**
@@ -116,12 +112,21 @@ async function deployAndResolveWarpIsm(warpConfig, multiProvider, registry, ismF
116
112
  *
117
113
  * @returns The deployed ism address
118
114
  */
119
- async function createWarpIsm(chain, warpConfig, multiProvider, factoryAddresses, contractVerifier) {
120
- const { domainRoutingIsmFactory, staticAggregationHookFactory, staticAggregationIsmFactory, staticMerkleRootMultisigIsmFactory, staticMessageIdMultisigIsmFactory, staticMerkleRootWeightedMultisigIsmFactory, staticMessageIdWeightedMultisigIsmFactory, } = factoryAddresses;
115
+ async function createWarpIsm({ chain, chainAddresses, context, contractVerifier, warpConfig, }) {
116
+ const { interchainSecurityModule } = warpConfig;
117
+ if (!interchainSecurityModule ||
118
+ typeof interchainSecurityModule === 'string') {
119
+ logGray(`Config Ism is ${!interchainSecurityModule ? 'empty' : interchainSecurityModule}, skipping deployment.`);
120
+ return interchainSecurityModule;
121
+ }
122
+ logBlue(`Loading registry factory addresses for ${chain}...`);
123
+ logGray(`Creating ${interchainSecurityModule.type} ISM for token on ${chain} chain...`);
124
+ logGreen(`Finished creating ${interchainSecurityModule.type} ISM for token on ${chain} chain.`);
125
+ const { mailbox, domainRoutingIsmFactory, staticAggregationHookFactory, staticAggregationIsmFactory, staticMerkleRootMultisigIsmFactory, staticMessageIdMultisigIsmFactory, staticMerkleRootWeightedMultisigIsmFactory, staticMessageIdWeightedMultisigIsmFactory, } = chainAddresses;
121
126
  const evmIsmModule = await EvmIsmModule.create({
122
127
  chain,
123
- multiProvider,
124
- mailbox: warpConfig[chain].mailbox,
128
+ mailbox,
129
+ multiProvider: context.multiProvider,
125
130
  proxyFactoryFactories: {
126
131
  domainRoutingIsmFactory,
127
132
  staticAggregationHookFactory,
@@ -131,12 +136,48 @@ async function createWarpIsm(chain, warpConfig, multiProvider, factoryAddresses,
131
136
  staticMerkleRootWeightedMultisigIsmFactory,
132
137
  staticMessageIdWeightedMultisigIsmFactory,
133
138
  },
134
- config: warpConfig[chain].interchainSecurityModule,
139
+ config: interchainSecurityModule,
135
140
  contractVerifier,
136
141
  });
137
142
  const { deployedIsm } = evmIsmModule.serialize();
138
143
  return deployedIsm;
139
144
  }
145
+ async function createWarpHook({ chain, chainAddresses, context, contractVerifier, warpConfig, }) {
146
+ const { hook } = warpConfig;
147
+ if (!hook || typeof hook === 'string') {
148
+ logGray(`Config Hook is ${!hook ? 'empty' : hook}, skipping deployment.`);
149
+ return hook;
150
+ }
151
+ logBlue(`Loading registry factory addresses for ${chain}...`);
152
+ logGray(`Creating ${hook.type} Hook for token on ${chain} chain...`);
153
+ const { mailbox, domainRoutingIsmFactory, staticAggregationHookFactory, staticAggregationIsmFactory, staticMerkleRootMultisigIsmFactory, staticMessageIdMultisigIsmFactory, staticMerkleRootWeightedMultisigIsmFactory, staticMessageIdWeightedMultisigIsmFactory, } = chainAddresses;
154
+ const proxyFactoryFactories = {
155
+ domainRoutingIsmFactory,
156
+ staticAggregationHookFactory,
157
+ staticAggregationIsmFactory,
158
+ staticMerkleRootMultisigIsmFactory,
159
+ staticMessageIdMultisigIsmFactory,
160
+ staticMerkleRootWeightedMultisigIsmFactory,
161
+ staticMessageIdWeightedMultisigIsmFactory,
162
+ };
163
+ // If config.proxyadmin.address exists, then use that. otherwise deploy a new proxyAdmin
164
+ const proxyAdminAddress = warpConfig.proxyAdmin?.address ??
165
+ (await context.multiProvider.handleDeploy(chain, new ProxyAdmin__factory(), [])).address;
166
+ const evmHookModule = await EvmHookModule.create({
167
+ chain,
168
+ multiProvider: context.multiProvider,
169
+ coreAddresses: {
170
+ mailbox,
171
+ proxyAdmin: proxyAdminAddress,
172
+ },
173
+ config: hook,
174
+ contractVerifier,
175
+ proxyFactoryFactories,
176
+ });
177
+ logGreen(`Finished creating ${hook.type} Hook for token on ${chain} chain.`);
178
+ const { deployedHook } = evmHookModule.serialize();
179
+ return deployedHook;
180
+ }
140
181
  async function getWarpCoreConfig({ warpDeployConfig, context }, contracts) {
141
182
  const warpCoreConfig = { tokens: [] };
142
183
  // TODO: replace with warp read
@@ -154,7 +195,7 @@ async function getWarpCoreConfig({ warpDeployConfig, context }, contracts) {
154
195
  function generateTokenConfigs(warpCoreConfig, warpDeployConfig, contracts, symbol, name, decimals) {
155
196
  for (const [chainName, contract] of Object.entries(contracts)) {
156
197
  const config = warpDeployConfig[chainName];
157
- const collateralAddressOrDenom = isCollateralConfig(config)
198
+ const collateralAddressOrDenom = isCollateralTokenConfig(config)
158
199
  ? config.token // gets set in the above deriveTokenMetadata()
159
200
  : undefined;
160
201
  warpCoreConfig.tokens.push({