@hyperlane-xyz/cli 8.8.0 → 8.9.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 (82) hide show
  1. package/dist/src/check/warp.d.ts.map +1 -1
  2. package/dist/src/check/warp.js +7 -1
  3. package/dist/src/check/warp.js.map +1 -1
  4. package/dist/src/commands/signCommands.d.ts +0 -2
  5. package/dist/src/commands/signCommands.d.ts.map +1 -1
  6. package/dist/src/commands/signCommands.js +1 -7
  7. package/dist/src/commands/signCommands.js.map +1 -1
  8. package/dist/src/commands/warp.d.ts.map +1 -1
  9. package/dist/src/commands/warp.js +12 -2
  10. package/dist/src/commands/warp.js.map +1 -1
  11. package/dist/src/config/hooks.d.ts +6 -5683
  12. package/dist/src/config/hooks.d.ts.map +1 -1
  13. package/dist/src/config/hooks.js +1 -8
  14. package/dist/src/config/hooks.js.map +1 -1
  15. package/dist/src/config/ism.d.ts +50 -0
  16. package/dist/src/config/ism.d.ts.map +1 -1
  17. package/dist/src/config/ism.js +16 -0
  18. package/dist/src/config/ism.js.map +1 -1
  19. package/dist/src/context/context.d.ts +0 -8
  20. package/dist/src/context/context.d.ts.map +1 -1
  21. package/dist/src/context/context.js +12 -44
  22. package/dist/src/context/context.js.map +1 -1
  23. package/dist/src/context/strategies/chain/ChainResolverFactory.d.ts.map +1 -1
  24. package/dist/src/context/strategies/chain/ChainResolverFactory.js +0 -2
  25. package/dist/src/context/strategies/chain/ChainResolverFactory.js.map +1 -1
  26. package/dist/src/context/strategies/chain/MultiChainResolver.d.ts.map +1 -1
  27. package/dist/src/context/strategies/chain/MultiChainResolver.js.map +1 -1
  28. package/dist/src/deploy/warp.d.ts.map +1 -1
  29. package/dist/src/deploy/warp.js +13 -6
  30. package/dist/src/deploy/warp.js.map +1 -1
  31. package/dist/src/read/warp.d.ts +2 -2
  32. package/dist/src/read/warp.d.ts.map +1 -1
  33. package/dist/src/read/warp.js.map +1 -1
  34. package/dist/src/status/message.d.ts.map +1 -1
  35. package/dist/src/status/message.js +8 -3
  36. package/dist/src/status/message.js.map +1 -1
  37. package/dist/src/tests/commands/helpers.d.ts +3 -1
  38. package/dist/src/tests/commands/helpers.d.ts.map +1 -1
  39. package/dist/src/tests/commands/helpers.js +29 -1
  40. package/dist/src/tests/commands/helpers.js.map +1 -1
  41. package/dist/src/tests/commands/warp.d.ts +2 -5
  42. package/dist/src/tests/commands/warp.d.ts.map +1 -1
  43. package/dist/src/tests/commands/warp.js +3 -7
  44. package/dist/src/tests/commands/warp.js.map +1 -1
  45. package/dist/src/tests/hooks.test.js.map +1 -1
  46. package/dist/src/tests/warp/warp-apply-extend.e2e-test.d.ts +2 -0
  47. package/dist/src/tests/warp/warp-apply-extend.e2e-test.d.ts.map +1 -0
  48. package/dist/src/tests/warp/warp-apply-extend.e2e-test.js +170 -0
  49. package/dist/src/tests/warp/warp-apply-extend.e2e-test.js.map +1 -0
  50. package/dist/src/tests/warp/warp-apply.e2e-test.js +3 -154
  51. package/dist/src/tests/warp/warp-apply.e2e-test.js.map +1 -1
  52. package/dist/src/tests/warp/warp-bridge-1.e2e-test.d.ts +2 -0
  53. package/dist/src/tests/warp/warp-bridge-1.e2e-test.d.ts.map +1 -0
  54. package/dist/src/tests/warp/warp-bridge-1.e2e-test.js +21 -0
  55. package/dist/src/tests/warp/warp-bridge-1.e2e-test.js.map +1 -0
  56. package/dist/src/tests/warp/warp-bridge-2.e2e-test.d.ts +2 -0
  57. package/dist/src/tests/warp/warp-bridge-2.e2e-test.d.ts.map +1 -0
  58. package/dist/src/tests/warp/warp-bridge-2.e2e-test.js +21 -0
  59. package/dist/src/tests/warp/warp-bridge-2.e2e-test.js.map +1 -0
  60. package/dist/src/tests/warp/warp-bridge-utils.d.ts +30 -0
  61. package/dist/src/tests/warp/warp-bridge-utils.d.ts.map +1 -0
  62. package/dist/src/tests/warp/warp-bridge-utils.js +140 -0
  63. package/dist/src/tests/warp/warp-bridge-utils.js.map +1 -0
  64. package/dist/src/tests/warp/warp-check.e2e-test.js +184 -40
  65. package/dist/src/tests/warp/warp-check.e2e-test.js.map +1 -1
  66. package/dist/src/tests/warp/warp-deploy.e2e-test.js +2 -111
  67. package/dist/src/tests/warp/warp-deploy.e2e-test.js.map +1 -1
  68. package/dist/src/tests/warp/warp-read.e2e-test.js +5 -14
  69. package/dist/src/tests/warp/warp-read.e2e-test.js.map +1 -1
  70. package/dist/src/tests/warp/warp-send.e2e-test.js +94 -2
  71. package/dist/src/tests/warp/warp-send.e2e-test.js.map +1 -1
  72. package/dist/src/utils/balances.js +1 -1
  73. package/dist/src/utils/balances.js.map +1 -1
  74. package/dist/src/version.d.ts +1 -1
  75. package/dist/src/version.js +1 -1
  76. package/examples/ccip/ccip-warp-route.yaml +26 -0
  77. package/examples/ccip/multi-chain-ccip-warp-route.yaml +81 -0
  78. package/package.json +4 -4
  79. package/dist/src/index.d.ts +0 -2
  80. package/dist/src/index.d.ts.map +0 -1
  81. package/dist/src/index.js +0 -2
  82. package/dist/src/index.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"warp-apply-extend.e2e-test.js","sourceRoot":"","sources":["../../../../src/tests/warp/warp-apply-extend.e2e-test.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,12 @@
1
1
  import { expect } from 'chai';
2
- import { Wallet } from 'ethers';
3
- import { HookType, TokenType, normalizeConfig, randomAddress, } from '@hyperlane-xyz/sdk';
2
+ import { HookType, normalizeConfig, randomAddress, } from '@hyperlane-xyz/sdk';
4
3
  import { readYamlOrJson, writeYamlOrJson } from '../../utils/files.js';
5
- import { ANVIL_KEY, CHAIN_NAME_2, CHAIN_NAME_3, CORE_CONFIG_PATH, DEFAULT_E2E_TEST_TIMEOUT, E2E_TEST_BURN_ADDRESS, EXAMPLES_PATH, TEMP_PATH, WARP_CONFIG_PATH_2, WARP_CONFIG_PATH_EXAMPLE, WARP_CORE_CONFIG_PATH_2, deployOrUseExistingCore, extendWarpConfig, getCombinedWarpRoutePath, getDomainId, updateOwner, } from '../commands/helpers.js';
4
+ import { ANVIL_KEY, CHAIN_NAME_2, CORE_CONFIG_PATH, DEFAULT_E2E_TEST_TIMEOUT, E2E_TEST_BURN_ADDRESS, TEMP_PATH, WARP_CONFIG_PATH_2, WARP_CONFIG_PATH_EXAMPLE, WARP_CORE_CONFIG_PATH_2, deployOrUseExistingCore, updateOwner, } from '../commands/helpers.js';
6
5
  import { hyperlaneWarpApply, hyperlaneWarpDeploy, readWarpConfig, } from '../commands/warp.js';
7
- describe('hyperlane warp apply e2e tests', async function () {
6
+ describe('hyperlane warp apply owner update tests', async function () {
8
7
  this.timeout(2 * DEFAULT_E2E_TEST_TIMEOUT);
9
- let chain2Addresses = {};
10
8
  before(async function () {
11
9
  await deployOrUseExistingCore(CHAIN_NAME_2, CORE_CONFIG_PATH, ANVIL_KEY);
12
- chain2Addresses = await deployOrUseExistingCore(CHAIN_NAME_3, CORE_CONFIG_PATH, ANVIL_KEY);
13
10
  // Create a new warp config using the example
14
11
  const warpConfig = readYamlOrJson(WARP_CONFIG_PATH_EXAMPLE);
15
12
  const anvil2Config = { anvil2: { ...warpConfig.anvil1 } };
@@ -52,153 +49,5 @@ describe('hyperlane warp apply e2e tests', async function () {
52
49
  // Verify the hook was updated with all properties
53
50
  expect(normalizeConfig(updatedConfig[CHAIN_NAME_2].hook)).to.deep.equal(normalizeConfig(warpDeployConfig[CHAIN_NAME_2].hook));
54
51
  });
55
- it('should extend an existing warp route', async () => {
56
- // Read existing config into a file
57
- const warpConfigPath = `${TEMP_PATH}/warp-route-deployment-2.yaml`;
58
- await readWarpConfig(CHAIN_NAME_2, WARP_CORE_CONFIG_PATH_2, warpConfigPath);
59
- // Extend with new config
60
- const config = {
61
- decimals: 18,
62
- mailbox: chain2Addresses.mailbox,
63
- name: 'Ether',
64
- owner: new Wallet(ANVIL_KEY).address,
65
- symbol: 'ETH',
66
- totalSupply: 0,
67
- type: TokenType.native,
68
- };
69
- await extendWarpConfig({
70
- chain: CHAIN_NAME_2,
71
- chainToExtend: CHAIN_NAME_3,
72
- extendedConfig: config,
73
- warpCorePath: WARP_CORE_CONFIG_PATH_2,
74
- warpDeployPath: warpConfigPath,
75
- });
76
- const COMBINED_WARP_CORE_CONFIG_PATH = getCombinedWarpRoutePath('ETH', [
77
- CHAIN_NAME_2,
78
- CHAIN_NAME_3,
79
- ]);
80
- // Check that chain2 is enrolled in chain1
81
- const updatedWarpDeployConfig1 = await readWarpConfig(CHAIN_NAME_2, COMBINED_WARP_CORE_CONFIG_PATH, warpConfigPath);
82
- const chain2Id = await getDomainId(CHAIN_NAME_3, ANVIL_KEY);
83
- const remoteRouterKeys1 = Object.keys(updatedWarpDeployConfig1[CHAIN_NAME_2].remoteRouters);
84
- expect(remoteRouterKeys1).to.include(chain2Id);
85
- // Check that chain1 is enrolled in chain2
86
- const updatedWarpDeployConfig2 = await readWarpConfig(CHAIN_NAME_3, COMBINED_WARP_CORE_CONFIG_PATH, warpConfigPath);
87
- const chain1Id = await getDomainId(CHAIN_NAME_2, ANVIL_KEY);
88
- const remoteRouterKeys2 = Object.keys(updatedWarpDeployConfig2[CHAIN_NAME_3].remoteRouters);
89
- expect(remoteRouterKeys2).to.include(chain1Id);
90
- });
91
- it('should extend an existing warp route with json strategy', async () => {
92
- // Read existing config into a file
93
- const warpConfigPath = `${TEMP_PATH}/warp-route-deployment-2.yaml`;
94
- await readWarpConfig(CHAIN_NAME_2, WARP_CORE_CONFIG_PATH_2, warpConfigPath);
95
- // Extend with new config
96
- const config = {
97
- decimals: 18,
98
- mailbox: chain2Addresses.mailbox,
99
- name: 'Ether',
100
- owner: new Wallet(ANVIL_KEY).address,
101
- symbol: 'ETH',
102
- totalSupply: 0,
103
- type: TokenType.native,
104
- };
105
- await extendWarpConfig({
106
- chain: CHAIN_NAME_2,
107
- chainToExtend: CHAIN_NAME_3,
108
- extendedConfig: config,
109
- warpCorePath: WARP_CORE_CONFIG_PATH_2,
110
- warpDeployPath: warpConfigPath,
111
- strategyUrl: `${EXAMPLES_PATH}/submit/strategy/json-rpc-chain-strategy.yaml`,
112
- });
113
- const COMBINED_WARP_CORE_CONFIG_PATH = getCombinedWarpRoutePath('ETH', [
114
- CHAIN_NAME_2,
115
- CHAIN_NAME_3,
116
- ]);
117
- // Check that chain2 is enrolled in chain1
118
- const updatedWarpDeployConfig1 = await readWarpConfig(CHAIN_NAME_2, COMBINED_WARP_CORE_CONFIG_PATH, warpConfigPath);
119
- const chain2Id = await getDomainId(CHAIN_NAME_3, ANVIL_KEY);
120
- const remoteRouterKeys1 = Object.keys(updatedWarpDeployConfig1[CHAIN_NAME_2].remoteRouters);
121
- expect(remoteRouterKeys1).to.include(chain2Id);
122
- // Check that chain1 is enrolled in chain2
123
- const updatedWarpDeployConfig2 = await readWarpConfig(CHAIN_NAME_3, COMBINED_WARP_CORE_CONFIG_PATH, warpConfigPath);
124
- const chain1Id = await getDomainId(CHAIN_NAME_2, ANVIL_KEY);
125
- const remoteRouterKeys2 = Object.keys(updatedWarpDeployConfig2[CHAIN_NAME_3].remoteRouters);
126
- expect(remoteRouterKeys2).to.include(chain1Id);
127
- });
128
- it('should extend an existing warp route and update the owner', async () => {
129
- const warpDeployPath = `${TEMP_PATH}/warp-route-deployment-2.yaml`;
130
- // Burn anvil2 owner in config
131
- const warpDeployConfig = await readWarpConfig(CHAIN_NAME_2, WARP_CORE_CONFIG_PATH_2, warpDeployPath);
132
- warpDeployConfig[CHAIN_NAME_2].owner = E2E_TEST_BURN_ADDRESS;
133
- // Extend with new config
134
- const randomOwner = new Wallet(ANVIL_KEY).address;
135
- const extendedConfig = {
136
- decimals: 18,
137
- mailbox: chain2Addresses.mailbox,
138
- name: 'Ether',
139
- owner: randomOwner,
140
- symbol: 'ETH',
141
- totalSupply: 0,
142
- type: TokenType.native,
143
- };
144
- warpDeployConfig[CHAIN_NAME_3] = extendedConfig;
145
- writeYamlOrJson(warpDeployPath, warpDeployConfig);
146
- await hyperlaneWarpApply(warpDeployPath, WARP_CORE_CONFIG_PATH_2);
147
- const COMBINED_WARP_CORE_CONFIG_PATH = getCombinedWarpRoutePath('ETH', [
148
- CHAIN_NAME_2,
149
- CHAIN_NAME_3,
150
- ]);
151
- const updatedWarpDeployConfig_2 = await readWarpConfig(CHAIN_NAME_2, COMBINED_WARP_CORE_CONFIG_PATH, warpDeployPath);
152
- const updatedWarpDeployConfig_3 = await readWarpConfig(CHAIN_NAME_3, COMBINED_WARP_CORE_CONFIG_PATH, warpDeployPath);
153
- // Check that anvil2 owner is burned
154
- expect(updatedWarpDeployConfig_2.anvil2.owner).to.equal(E2E_TEST_BURN_ADDRESS);
155
- // Also, anvil3 owner is not burned
156
- expect(updatedWarpDeployConfig_3.anvil3.owner).to.equal(randomOwner);
157
- // Check that both chains enrolled
158
- const chain2Id = await getDomainId(CHAIN_NAME_2, ANVIL_KEY);
159
- const chain3Id = await getDomainId(CHAIN_NAME_3, ANVIL_KEY);
160
- const remoteRouterKeys2 = Object.keys(updatedWarpDeployConfig_2[CHAIN_NAME_2].remoteRouters);
161
- const remoteRouterKeys3 = Object.keys(updatedWarpDeployConfig_3[CHAIN_NAME_3].remoteRouters);
162
- expect(remoteRouterKeys2).to.include(chain3Id);
163
- expect(remoteRouterKeys3).to.include(chain2Id);
164
- });
165
- it('should extend an existing warp route and update all destination domains', async () => {
166
- // Read existing config into a file
167
- const warpConfigPath = `${TEMP_PATH}/warp-route-deployment-2.yaml`;
168
- const warpDeployConfig = await readWarpConfig(CHAIN_NAME_2, WARP_CORE_CONFIG_PATH_2, warpConfigPath);
169
- warpDeployConfig[CHAIN_NAME_2].gas = 7777;
170
- // Extend with new config
171
- const GAS = 694200;
172
- const extendedConfig = {
173
- decimals: 18,
174
- mailbox: chain2Addresses.mailbox,
175
- name: 'Ether',
176
- owner: new Wallet(ANVIL_KEY).address,
177
- symbol: 'ETH',
178
- totalSupply: 0,
179
- type: TokenType.native,
180
- gas: GAS,
181
- };
182
- warpDeployConfig[CHAIN_NAME_3] = extendedConfig;
183
- writeYamlOrJson(warpConfigPath, warpDeployConfig);
184
- await hyperlaneWarpApply(warpConfigPath, WARP_CORE_CONFIG_PATH_2);
185
- const COMBINED_WARP_CORE_CONFIG_PATH = getCombinedWarpRoutePath('ETH', [
186
- CHAIN_NAME_2,
187
- CHAIN_NAME_3,
188
- ]);
189
- // Check that chain2 is enrolled in chain1
190
- const updatedWarpDeployConfig_2 = await readWarpConfig(CHAIN_NAME_2, COMBINED_WARP_CORE_CONFIG_PATH, warpConfigPath);
191
- const chain2Id = await getDomainId(CHAIN_NAME_2, ANVIL_KEY);
192
- const chain3Id = await getDomainId(CHAIN_NAME_3, ANVIL_KEY);
193
- // Destination gas should be set in the existing chain (chain2) to include the extended chain (chain3)
194
- const destinationGas_2 = updatedWarpDeployConfig_2[CHAIN_NAME_2].destinationGas;
195
- expect(Object.keys(destinationGas_2)).to.include(chain3Id);
196
- expect(destinationGas_2[chain3Id]).to.equal(GAS.toString());
197
- // Destination gas should be set for the extended chain (chain3)
198
- const updatedWarpDeployConfig_3 = await readWarpConfig(CHAIN_NAME_3, COMBINED_WARP_CORE_CONFIG_PATH, warpConfigPath);
199
- const destinationGas_3 = updatedWarpDeployConfig_3[CHAIN_NAME_3].destinationGas;
200
- expect(Object.keys(destinationGas_3)).to.include(chain2Id);
201
- expect(destinationGas_3[chain2Id]).to.equal('7777');
202
- });
203
52
  });
204
53
  //# sourceMappingURL=warp-apply.e2e-test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"warp-apply.e2e-test.js","sourceRoot":"","sources":["../../../../src/tests/warp/warp-apply.e2e-test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"warp-apply.e2e-test.js","sourceRoot":"","sources":["../../../../src/tests/warp/warp-apply.e2e-test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=warp-bridge-1.e2e-test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"warp-bridge-1.e2e-test.d.ts","sourceRoot":"","sources":["../../../../src/tests/warp/warp-bridge-1.e2e-test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,21 @@
1
+ import * as chai from 'chai';
2
+ import chaiAsPromised from 'chai-as-promised';
3
+ import { DEFAULT_E2E_TEST_TIMEOUT } from '../commands/helpers.js';
4
+ import { TOTAL_PARTS, generateTestCases, runWarpBridgeTests, setupChains, } from './warp-bridge-utils.js';
5
+ chai.use(chaiAsPromised);
6
+ chai.should();
7
+ const INDEX = 0;
8
+ describe('hyperlane warp deploy and bridge e2e tests', async function () {
9
+ this.timeout(DEFAULT_E2E_TEST_TIMEOUT);
10
+ let config;
11
+ let warpConfigTestCases;
12
+ before(async function () {
13
+ config = await setupChains();
14
+ warpConfigTestCases = generateTestCases(config, TOTAL_PARTS, INDEX);
15
+ });
16
+ it(`Should deploy and bridge different types of warp routes - Part ${INDEX + 1} of ${TOTAL_PARTS}`, async function () {
17
+ this.timeout(warpConfigTestCases.length * DEFAULT_E2E_TEST_TIMEOUT);
18
+ await runWarpBridgeTests(config, warpConfigTestCases);
19
+ });
20
+ });
21
+ //# sourceMappingURL=warp-bridge-1.e2e-test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"warp-bridge-1.e2e-test.js","sourceRoot":"","sources":["../../../../src/tests/warp/warp-bridge-1.e2e-test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAI9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,OAAO,EACL,WAAW,EAEX,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,GACZ,MAAM,wBAAwB,CAAC;AAEhC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACzB,IAAI,CAAC,MAAM,EAAE,CAAC;AAEd,MAAM,KAAK,GAAG,CAAC,CAAC;AAEhB,QAAQ,CAAC,4CAA4C,EAAE,KAAK;IAC1D,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAEvC,IAAI,MAA4B,CAAC;IACjC,IAAI,mBAAyD,CAAC;IAE9D,MAAM,CAAC,KAAK;QACV,MAAM,GAAG,MAAM,WAAW,EAAE,CAAC;QAC7B,mBAAmB,GAAG,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEACD,KAAK,GAAG,CACV,OAAO,WAAW,EAAE,EAAE,KAAK;QACzB,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,MAAM,GAAG,wBAAwB,CAAC,CAAC;QACpE,MAAM,kBAAkB,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=warp-bridge-2.e2e-test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"warp-bridge-2.e2e-test.d.ts","sourceRoot":"","sources":["../../../../src/tests/warp/warp-bridge-2.e2e-test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,21 @@
1
+ import * as chai from 'chai';
2
+ import chaiAsPromised from 'chai-as-promised';
3
+ import { DEFAULT_E2E_TEST_TIMEOUT } from '../commands/helpers.js';
4
+ import { TOTAL_PARTS, generateTestCases, runWarpBridgeTests, setupChains, } from './warp-bridge-utils.js';
5
+ chai.use(chaiAsPromised);
6
+ chai.should();
7
+ const INDEX = 1;
8
+ describe('hyperlane warp deploy and bridge e2e tests', async function () {
9
+ this.timeout(DEFAULT_E2E_TEST_TIMEOUT);
10
+ let config;
11
+ let warpConfigTestCases;
12
+ before(async function () {
13
+ config = await setupChains();
14
+ warpConfigTestCases = generateTestCases(config, TOTAL_PARTS, INDEX);
15
+ });
16
+ it(`Should deploy and bridge different types of warp routes - Part ${INDEX + 1} of ${TOTAL_PARTS}`, async function () {
17
+ this.timeout(warpConfigTestCases.length * DEFAULT_E2E_TEST_TIMEOUT);
18
+ await runWarpBridgeTests(config, warpConfigTestCases);
19
+ });
20
+ });
21
+ //# sourceMappingURL=warp-bridge-2.e2e-test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"warp-bridge-2.e2e-test.js","sourceRoot":"","sources":["../../../../src/tests/warp/warp-bridge-2.e2e-test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAI9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,OAAO,EACL,WAAW,EAEX,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,GACZ,MAAM,wBAAwB,CAAC;AAEhC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACzB,IAAI,CAAC,MAAM,EAAE,CAAC;AAEd,MAAM,KAAK,GAAG,CAAC,CAAC;AAEhB,QAAQ,CAAC,4CAA4C,EAAE,KAAK;IAC1D,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAEvC,IAAI,MAA4B,CAAC;IACjC,IAAI,mBAAyD,CAAC;IAE9D,MAAM,CAAC,KAAK;QACV,MAAM,GAAG,MAAM,WAAW,EAAE,CAAC;QAC7B,mBAAmB,GAAG,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEACD,KAAK,GAAG,CACV,OAAO,WAAW,EAAE,EAAE,KAAK;QACzB,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,MAAM,GAAG,wBAAwB,CAAC,CAAC;QACpE,MAAM,kBAAkB,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { Wallet } from 'ethers';
2
+ import { ERC20Test, ERC4626Test } from '@hyperlane-xyz/core';
3
+ import { ChainAddresses } from '@hyperlane-xyz/registry';
4
+ import { ChainMap, WarpRouteDeployConfig } from '@hyperlane-xyz/sdk';
5
+ import { Address } from '@hyperlane-xyz/utils';
6
+ export declare const TOTAL_PARTS = 2;
7
+ export type WarpBridgeTestConfig = {
8
+ chain2Addresses: ChainAddresses;
9
+ chain3Addresses: ChainAddresses;
10
+ ownerAddress: Address;
11
+ tokenVaultChain2Symbol: string;
12
+ tokenChain2Symbol: string;
13
+ tokenVaultChain3Symbol: string;
14
+ tokenChain3Symbol: string;
15
+ walletChain2: Wallet;
16
+ walletChain3: Wallet;
17
+ tokenChain2: ERC20Test;
18
+ vaultChain2: ERC4626Test;
19
+ tokenChain3: ERC20Test;
20
+ vaultChain3: ERC4626Test;
21
+ };
22
+ export declare function runWarpBridgeTests(config: WarpBridgeTestConfig, warpConfigTestCases: ReadonlyArray<WarpRouteDeployConfig>): Promise<void>;
23
+ export declare function setupChains(): Promise<WarpBridgeTestConfig>;
24
+ export declare function generateTestCases(config: WarpBridgeTestConfig, divideBy: number, index: number): ReadonlyArray<WarpRouteDeployConfig>;
25
+ export declare function getTokenSymbolFromDeployment(warpConfig: WarpRouteDeployConfig, tokenVaultChain2Symbol: string, tokenChain2Symbol: string, tokenVaultChain3Symbol: string, tokenChain3Symbol: string): string;
26
+ export declare function collateralizeWarpTokens(routeConfigPath: string, warpDeployConfig: WarpRouteDeployConfig, walletAndCollateralByChain: ChainMap<{
27
+ wallet: Wallet;
28
+ collateral: ERC20Test;
29
+ }>): Promise<void>;
30
+ //# sourceMappingURL=warp-bridge-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"warp-bridge-utils.d.ts","sourceRoot":"","sources":["../../../../src/tests/warp/warp-bridge-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EACL,QAAQ,EAIR,qBAAqB,EACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAmB/C,eAAO,MAAM,WAAW,IAAI,CAAC;AAE7B,MAAM,MAAM,oBAAoB,GAAG;IACjC,eAAe,EAAE,cAAc,CAAC;IAChC,eAAe,EAAE,cAAc,CAAC;IAChC,YAAY,EAAE,OAAO,CAAC;IACtB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,SAAS,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,SAAS,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,oBAAoB,EAC5B,mBAAmB,EAAE,aAAa,CAAC,qBAAqB,CAAC,iBA0D1D;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAwDjE;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,oBAAoB,EAC5B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,aAAa,CAAC,qBAAqB,CAAC,CAsBtC;AAED,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,qBAAqB,EACjC,sBAAsB,EAAE,MAAM,EAC9B,iBAAiB,EAAE,MAAM,EACzB,sBAAsB,EAAE,MAAM,EAC9B,iBAAiB,EAAE,MAAM,GACxB,MAAM,CAeR;AAED,wBAAsB,uBAAuB,CAC3C,eAAe,EAAE,MAAM,EACvB,gBAAgB,EAAE,qBAAqB,EACvC,0BAA0B,EAAE,QAAQ,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,SAAS,CAAC;CACvB,CAAC,iBAuCH"}
@@ -0,0 +1,140 @@
1
+ import { JsonRpcProvider } from '@ethersproject/providers';
2
+ import { Wallet } from 'ethers';
3
+ import { parseUnits } from 'ethers/lib/utils.js';
4
+ import { readYamlOrJson, writeYamlOrJson } from '../../utils/files.js';
5
+ import { ANVIL_KEY, CHAIN_2_METADATA_PATH, CHAIN_3_METADATA_PATH, CHAIN_NAME_2, CHAIN_NAME_3, CORE_CONFIG_PATH, WARP_DEPLOY_OUTPUT_PATH, deploy4626Vault, deployOrUseExistingCore, deployToken, getCombinedWarpRoutePath, sendWarpRouteMessageRoundTrip, } from '../commands/helpers.js';
6
+ import { generateWarpConfigs, hyperlaneWarpDeploy } from '../commands/warp.js';
7
+ export const TOTAL_PARTS = 2;
8
+ export async function runWarpBridgeTests(config, warpConfigTestCases) {
9
+ for (let i = 0; i < warpConfigTestCases.length; i++) {
10
+ const warpConfig = warpConfigTestCases[i];
11
+ console.log(`[${i + 1} of ${warpConfigTestCases.length}] Should deploy and be able to bridge in a ${warpConfig[CHAIN_NAME_2].type} -> ${warpConfig[CHAIN_NAME_3].type} warp route ...`);
12
+ writeYamlOrJson(WARP_DEPLOY_OUTPUT_PATH, warpConfig);
13
+ await hyperlaneWarpDeploy(WARP_DEPLOY_OUTPUT_PATH);
14
+ let startChain, targetChain;
15
+ if (!warpConfig[CHAIN_NAME_2].type.match(/.*synthetic.*/i)) {
16
+ startChain = CHAIN_NAME_2;
17
+ targetChain = CHAIN_NAME_3;
18
+ }
19
+ else {
20
+ startChain = CHAIN_NAME_3;
21
+ targetChain = CHAIN_NAME_2;
22
+ }
23
+ const symbol = getTokenSymbolFromDeployment(warpConfig, config.tokenVaultChain2Symbol, config.tokenChain2Symbol, config.tokenVaultChain3Symbol, config.tokenChain3Symbol);
24
+ const routeConfigPath = getCombinedWarpRoutePath(symbol, [
25
+ CHAIN_NAME_2,
26
+ CHAIN_NAME_3,
27
+ ]);
28
+ await collateralizeWarpTokens(routeConfigPath, warpConfig, {
29
+ [CHAIN_NAME_2]: {
30
+ wallet: config.walletChain2,
31
+ collateral: config.tokenChain2,
32
+ },
33
+ [CHAIN_NAME_3]: {
34
+ wallet: config.walletChain3,
35
+ collateral: config.tokenChain3,
36
+ },
37
+ });
38
+ await sendWarpRouteMessageRoundTrip(startChain, targetChain, routeConfigPath);
39
+ console.log(`Should deploy and be able to bridge in a ${warpConfig[CHAIN_NAME_2].type} -> ${warpConfig[CHAIN_NAME_3].type} warp route ✅`);
40
+ }
41
+ }
42
+ export async function setupChains() {
43
+ const chain2Metadata = readYamlOrJson(CHAIN_2_METADATA_PATH);
44
+ const chain3Metadata = readYamlOrJson(CHAIN_3_METADATA_PATH);
45
+ const providerChain2 = new JsonRpcProvider(chain2Metadata.rpcUrls[0].http);
46
+ const providerChain3 = new JsonRpcProvider(chain3Metadata.rpcUrls[0].http);
47
+ const walletChain2 = new Wallet(ANVIL_KEY).connect(providerChain2);
48
+ const walletChain3 = new Wallet(ANVIL_KEY).connect(providerChain3);
49
+ const ownerAddress = walletChain2.address;
50
+ const [chain2Addresses, chain3Addresses] = await Promise.all([
51
+ deployOrUseExistingCore(CHAIN_NAME_2, CORE_CONFIG_PATH, ANVIL_KEY),
52
+ deployOrUseExistingCore(CHAIN_NAME_3, CORE_CONFIG_PATH, ANVIL_KEY),
53
+ ]);
54
+ const tokenChain2 = await deployToken(ANVIL_KEY, CHAIN_NAME_2);
55
+ const vaultChain2 = await deploy4626Vault(ANVIL_KEY, CHAIN_NAME_2, tokenChain2.address);
56
+ const [tokenChain2Symbol, tokenVaultChain2Symbol] = await Promise.all([
57
+ tokenChain2.symbol(),
58
+ vaultChain2.symbol(),
59
+ ]);
60
+ const tokenChain3 = await deployToken(ANVIL_KEY, CHAIN_NAME_3);
61
+ const vaultChain3 = await deploy4626Vault(ANVIL_KEY, CHAIN_NAME_3, tokenChain3.address);
62
+ const [tokenChain3Symbol, tokenVaultChain3Symbol] = await Promise.all([
63
+ tokenChain3.symbol(),
64
+ vaultChain3.symbol(),
65
+ ]);
66
+ return {
67
+ chain2Addresses,
68
+ chain3Addresses,
69
+ ownerAddress,
70
+ walletChain2,
71
+ walletChain3,
72
+ tokenChain2,
73
+ tokenChain2Symbol,
74
+ vaultChain2,
75
+ tokenVaultChain2Symbol,
76
+ tokenChain3,
77
+ tokenChain3Symbol,
78
+ vaultChain3,
79
+ tokenVaultChain3Symbol,
80
+ };
81
+ }
82
+ export function generateTestCases(config, divideBy, index) {
83
+ const warpConfigTestCases = generateWarpConfigs({
84
+ chainName: CHAIN_NAME_2,
85
+ mailbox: config.chain2Addresses.mailbox,
86
+ owner: config.ownerAddress,
87
+ token: config.tokenChain2.address,
88
+ vault: config.vaultChain2.address,
89
+ }, {
90
+ chainName: CHAIN_NAME_3,
91
+ mailbox: config.chain3Addresses.mailbox,
92
+ owner: config.ownerAddress,
93
+ token: config.tokenChain3.address,
94
+ vault: config.vaultChain3.address,
95
+ });
96
+ const chunkSize = Math.ceil(warpConfigTestCases.length / divideBy);
97
+ const start = index * chunkSize;
98
+ const end = Math.min(start + chunkSize, warpConfigTestCases.length);
99
+ return warpConfigTestCases.slice(start, end);
100
+ }
101
+ export function getTokenSymbolFromDeployment(warpConfig, tokenVaultChain2Symbol, tokenChain2Symbol, tokenVaultChain3Symbol, tokenChain3Symbol) {
102
+ let symbol;
103
+ if (warpConfig[CHAIN_NAME_2].type.match(/.*vault.*/i)) {
104
+ symbol = tokenVaultChain2Symbol;
105
+ }
106
+ else if (warpConfig[CHAIN_NAME_2].type.match(/.*collateral.*/i)) {
107
+ symbol = tokenChain2Symbol;
108
+ }
109
+ else if (warpConfig[CHAIN_NAME_3].type.match(/.*vault.*/i)) {
110
+ symbol = tokenVaultChain3Symbol;
111
+ }
112
+ else if (warpConfig[CHAIN_NAME_3].type.match(/.*collateral.*/i)) {
113
+ symbol = tokenChain3Symbol;
114
+ }
115
+ else {
116
+ symbol = 'ETH';
117
+ }
118
+ return symbol;
119
+ }
120
+ export async function collateralizeWarpTokens(routeConfigPath, warpDeployConfig, walletAndCollateralByChain) {
121
+ const config = readYamlOrJson(routeConfigPath).tokens.reduce((acc, curr) => ({ ...acc, [curr.chainName]: curr }), {});
122
+ await Promise.all([CHAIN_NAME_2, CHAIN_NAME_3]
123
+ .filter((chainName) => walletAndCollateralByChain[chainName])
124
+ .map(async (chainName) => {
125
+ if (warpDeployConfig[chainName].type.match(/.*native/i)) {
126
+ const tx = await walletAndCollateralByChain[chainName].wallet.sendTransaction({
127
+ to: config[chainName].addressOrDenom,
128
+ value: 1000000000,
129
+ });
130
+ await tx.wait();
131
+ }
132
+ if (!warpDeployConfig[chainName].type.match(/.*synthetic/i) &&
133
+ warpDeployConfig[chainName].type.match(/.*collateral/i)) {
134
+ const decimals = await walletAndCollateralByChain[chainName].collateral.decimals();
135
+ const tx = await walletAndCollateralByChain[chainName].collateral.transfer(config[chainName].addressOrDenom, parseUnits('1', decimals));
136
+ await tx.wait();
137
+ }
138
+ }));
139
+ }
140
+ //# sourceMappingURL=warp-bridge-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"warp-bridge-utils.js","sourceRoot":"","sources":["../../../../src/tests/warp/warp-bridge-utils.ts"],"names":[],"mappings":"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"}