@hyperlane-xyz/sdk 44.0.2 → 45.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 (171) hide show
  1. package/dist/consts/multisigIsm.d.ts.map +1 -1
  2. package/dist/consts/multisigIsm.js +114 -718
  3. package/dist/consts/multisigIsm.js.map +1 -1
  4. package/dist/consts/testChains.d.ts.map +1 -1
  5. package/dist/consts/testChains.js +11 -6
  6. package/dist/consts/testChains.js.map +1 -1
  7. package/dist/core/adapters/SealevelCoreAdapter.d.ts +6 -0
  8. package/dist/core/adapters/SealevelCoreAdapter.d.ts.map +1 -1
  9. package/dist/core/adapters/SealevelCoreAdapter.js +20 -0
  10. package/dist/core/adapters/SealevelCoreAdapter.js.map +1 -1
  11. package/dist/core/adapters/SealevelCoreAdapter.test.js +17 -0
  12. package/dist/core/adapters/SealevelCoreAdapter.test.js.map +1 -1
  13. package/dist/core/types.d.ts.map +1 -1
  14. package/dist/core/types.js +14 -1
  15. package/dist/core/types.js.map +1 -1
  16. package/dist/core/types.test.js +98 -1
  17. package/dist/core/types.test.js.map +1 -1
  18. package/dist/deploy/proxy.d.ts +1 -0
  19. package/dist/deploy/proxy.d.ts.map +1 -1
  20. package/dist/deploy/proxy.js +6 -0
  21. package/dist/deploy/proxy.js.map +1 -1
  22. package/dist/deploy/warp.d.ts.map +1 -1
  23. package/dist/deploy/warp.js +26 -41
  24. package/dist/deploy/warp.js.map +1 -1
  25. package/dist/gas/adapters/SealevelIgpAdapter.d.ts +3 -2
  26. package/dist/gas/adapters/SealevelIgpAdapter.d.ts.map +1 -1
  27. package/dist/gas/adapters/SealevelIgpAdapter.js +3 -2
  28. package/dist/gas/adapters/SealevelIgpAdapter.js.map +1 -1
  29. package/dist/index.d.ts +2 -2
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +2 -2
  32. package/dist/index.js.map +1 -1
  33. package/dist/ism/EvmIsmModule.d.ts.map +1 -1
  34. package/dist/ism/EvmIsmModule.js +5 -1
  35. package/dist/ism/EvmIsmModule.js.map +1 -1
  36. package/dist/ism/EvmIsmModule.test.js +109 -0
  37. package/dist/ism/EvmIsmModule.test.js.map +1 -1
  38. package/dist/ism/HyperlaneIsmFactory.d.ts +26 -6
  39. package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
  40. package/dist/ism/HyperlaneIsmFactory.hardhat-test.js +60 -0
  41. package/dist/ism/HyperlaneIsmFactory.hardhat-test.js.map +1 -1
  42. package/dist/ism/HyperlaneIsmFactory.js +165 -34
  43. package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
  44. package/dist/ism/HyperlaneIsmFactory.test.js +33 -6
  45. package/dist/ism/HyperlaneIsmFactory.test.js.map +1 -1
  46. package/dist/ism/types.d.ts +18 -2
  47. package/dist/ism/types.d.ts.map +1 -1
  48. package/dist/ism/types.js +43 -3
  49. package/dist/ism/types.js.map +1 -1
  50. package/dist/ism/types.test.js +232 -56
  51. package/dist/ism/types.test.js.map +1 -1
  52. package/dist/ism/utils.d.ts.map +1 -1
  53. package/dist/ism/utils.js +13 -0
  54. package/dist/ism/utils.js.map +1 -1
  55. package/dist/ism/utils.test.js +43 -1
  56. package/dist/ism/utils.test.js.map +1 -1
  57. package/dist/metadata/ChainMetadataManager.d.ts +1 -0
  58. package/dist/metadata/ChainMetadataManager.d.ts.map +1 -1
  59. package/dist/metadata/ChainMetadataManager.js +1 -0
  60. package/dist/metadata/ChainMetadataManager.js.map +1 -1
  61. package/dist/metadata/ChainMetadataManager.test.js +14 -1
  62. package/dist/metadata/ChainMetadataManager.test.js.map +1 -1
  63. package/dist/metadata/ChainMetadataResolver.d.ts +1 -0
  64. package/dist/metadata/ChainMetadataResolver.d.ts.map +1 -1
  65. package/dist/metadata/ChainMetadataResolver.js +1 -0
  66. package/dist/metadata/ChainMetadataResolver.js.map +1 -1
  67. package/dist/metadata/ChainMetadataResolver.test.js +4 -0
  68. package/dist/metadata/ChainMetadataResolver.test.js.map +1 -1
  69. package/dist/metadata/agentConfig.d.ts +209 -93
  70. package/dist/metadata/agentConfig.d.ts.map +1 -1
  71. package/dist/metadata/agentConfig.js +106 -13
  72. package/dist/metadata/agentConfig.js.map +1 -1
  73. package/dist/metadata/agentConfig.test.js +277 -25
  74. package/dist/metadata/agentConfig.test.js.map +1 -1
  75. package/dist/metadata/chainMetadata.test.js +25 -0
  76. package/dist/metadata/chainMetadata.test.js.map +1 -1
  77. package/dist/metadata/chainMetadataTypes.d.ts +36 -0
  78. package/dist/metadata/chainMetadataTypes.d.ts.map +1 -1
  79. package/dist/metadata/chainMetadataTypes.js +26 -0
  80. package/dist/metadata/chainMetadataTypes.js.map +1 -1
  81. package/dist/providers/SeismicSigner.d.ts +4 -12
  82. package/dist/providers/SeismicSigner.d.ts.map +1 -1
  83. package/dist/providers/SeismicSigner.js +84 -35
  84. package/dist/providers/SeismicSigner.js.map +1 -1
  85. package/dist/providers/SeismicSigner.test.d.ts +2 -0
  86. package/dist/providers/SeismicSigner.test.d.ts.map +1 -0
  87. package/dist/providers/SeismicSigner.test.js +160 -0
  88. package/dist/providers/SeismicSigner.test.js.map +1 -0
  89. package/dist/providers/SmartProvider/SmartProvider.d.ts +0 -4
  90. package/dist/providers/SmartProvider/SmartProvider.d.ts.map +1 -1
  91. package/dist/providers/SmartProvider/SmartProvider.emptyResponse.test.d.ts +2 -0
  92. package/dist/providers/SmartProvider/SmartProvider.emptyResponse.test.d.ts.map +1 -0
  93. package/dist/providers/SmartProvider/SmartProvider.emptyResponse.test.js +164 -0
  94. package/dist/providers/SmartProvider/SmartProvider.emptyResponse.test.js.map +1 -0
  95. package/dist/providers/SmartProvider/SmartProvider.js +20 -61
  96. package/dist/providers/SmartProvider/SmartProvider.js.map +1 -1
  97. package/dist/providers/SmartProvider/SmartProvider.test.js +159 -0
  98. package/dist/providers/SmartProvider/SmartProvider.test.js.map +1 -1
  99. package/dist/providers/SmartProvider/jsonRpcError.d.ts +7 -0
  100. package/dist/providers/SmartProvider/jsonRpcError.d.ts.map +1 -0
  101. package/dist/providers/SmartProvider/jsonRpcError.js +67 -0
  102. package/dist/providers/SmartProvider/jsonRpcError.js.map +1 -0
  103. package/dist/providers/SmartProvider/types.d.ts +1 -0
  104. package/dist/providers/SmartProvider/types.d.ts.map +1 -1
  105. package/dist/providers/builders/ethersV5.d.ts +0 -1
  106. package/dist/providers/builders/ethersV5.d.ts.map +1 -1
  107. package/dist/providers/builders/ethersV5.js +19 -5
  108. package/dist/providers/builders/ethersV5.js.map +1 -1
  109. package/dist/providers/builders/ethersV5.test.d.ts +2 -0
  110. package/dist/providers/builders/ethersV5.test.d.ts.map +1 -0
  111. package/dist/providers/builders/ethersV5.test.js +77 -0
  112. package/dist/providers/builders/ethersV5.test.js.map +1 -0
  113. package/dist/providers/builders/radix.browser.d.ts +1 -0
  114. package/dist/providers/builders/radix.browser.d.ts.map +1 -1
  115. package/dist/providers/builders/radix.browser.js +1 -0
  116. package/dist/providers/builders/radix.browser.js.map +1 -1
  117. package/dist/providers/builders/radix.d.ts.map +1 -1
  118. package/dist/providers/builders/radix.gateway.test.d.ts +2 -0
  119. package/dist/providers/builders/radix.gateway.test.d.ts.map +1 -0
  120. package/dist/providers/builders/radix.gateway.test.js +39 -0
  121. package/dist/providers/builders/radix.gateway.test.js.map +1 -0
  122. package/dist/providers/builders/radix.js +1 -0
  123. package/dist/providers/builders/radix.js.map +1 -1
  124. package/dist/providers/builders/radix.test.js +1 -0
  125. package/dist/providers/builders/radix.test.js.map +1 -1
  126. package/dist/providers/providerBuilders.d.ts +1 -1
  127. package/dist/providers/providerBuilders.d.ts.map +1 -1
  128. package/dist/providers/providerBuilders.js +1 -1
  129. package/dist/providers/providerBuilders.js.map +1 -1
  130. package/dist/rpc/evm/EvmEventLogsReader.hardhat-test.js +60 -8
  131. package/dist/rpc/evm/EvmEventLogsReader.hardhat-test.js.map +1 -1
  132. package/dist/test/errors.d.ts +21 -0
  133. package/dist/test/errors.d.ts.map +1 -1
  134. package/dist/test/errors.js +25 -0
  135. package/dist/test/errors.js.map +1 -1
  136. package/dist/timelock/evm/EvmTimelockReader.hardhat-test.js +92 -7
  137. package/dist/timelock/evm/EvmTimelockReader.hardhat-test.js.map +1 -1
  138. package/dist/timelock/evm/errors.js +1 -1
  139. package/dist/timelock/evm/errors.js.map +1 -1
  140. package/dist/token/EvmWarpRouteReader.d.ts +26 -0
  141. package/dist/token/EvmWarpRouteReader.d.ts.map +1 -1
  142. package/dist/token/EvmWarpRouteReader.hardhat-test.js +28 -3
  143. package/dist/token/EvmWarpRouteReader.hardhat-test.js.map +1 -1
  144. package/dist/token/EvmWarpRouteReader.js +137 -41
  145. package/dist/token/EvmWarpRouteReader.js.map +1 -1
  146. package/dist/token/EvmWarpRouteReader.test.js +381 -3
  147. package/dist/token/EvmWarpRouteReader.test.js.map +1 -1
  148. package/dist/token/types.d.ts +1 -1
  149. package/dist/token/warpCheck.d.ts +1 -0
  150. package/dist/token/warpCheck.d.ts.map +1 -1
  151. package/dist/token/warpCheck.js +25 -2
  152. package/dist/token/warpCheck.js.map +1 -1
  153. package/dist/token/warpCheck.test.js +119 -0
  154. package/dist/token/warpCheck.test.js.map +1 -1
  155. package/dist/utils/contract.d.ts +32 -0
  156. package/dist/utils/contract.d.ts.map +1 -1
  157. package/dist/utils/contract.js +90 -3
  158. package/dist/utils/contract.js.map +1 -1
  159. package/dist/utils/contract.test.js +402 -2
  160. package/dist/utils/contract.test.js.map +1 -1
  161. package/dist/utils/contract.transport.test.d.ts +2 -0
  162. package/dist/utils/contract.transport.test.d.ts.map +1 -0
  163. package/dist/utils/contract.transport.test.js +145 -0
  164. package/dist/utils/contract.transport.test.js.map +1 -0
  165. package/dist/utils/ism.d.ts +12 -6
  166. package/dist/utils/ism.d.ts.map +1 -1
  167. package/dist/utils/ism.js +92 -41
  168. package/dist/utils/ism.js.map +1 -1
  169. package/dist/utils/ism.test.js +75 -2
  170. package/dist/utils/ism.test.js.map +1 -1
  171. package/package.json +29 -15
@@ -0,0 +1,145 @@
1
+ import { expect } from 'chai';
2
+ import http from 'http';
3
+ import { assert } from '@hyperlane-xyz/utils';
4
+ import { HyperlaneSmartProvider } from '../providers/SmartProvider/SmartProvider.js';
5
+ import { isMissingSelectorCallException } from './contract.js';
6
+ const CHAIN_ID = 1;
7
+ const FALLBACK_STAGGER_MS = 50;
8
+ const CALL_PARAMS = { to: '0x' + '11'.repeat(20), data: '0x12345678' };
9
+ const EthMethod = {
10
+ ChainId: 'eth_chainId',
11
+ Call: 'eth_call',
12
+ };
13
+ const CallBehavior = {
14
+ Http500: 'http500',
15
+ HeaderNotFound: 'headerNotFound',
16
+ DestroySocket: 'destroySocket',
17
+ RateLimit: 'rateLimit',
18
+ RevertCode3: 'revertCode3',
19
+ ExecutionReverted: 'executionReverted',
20
+ EmptyResult: 'emptyResult',
21
+ };
22
+ function isJsonRpcRequest(value) {
23
+ return (typeof value === 'object' &&
24
+ value !== null &&
25
+ 'id' in value &&
26
+ typeof value.id === 'number' &&
27
+ 'method' in value &&
28
+ typeof value.method === 'string');
29
+ }
30
+ function assertRequest(body) {
31
+ if (!isJsonRpcRequest(body))
32
+ throw new Error('Unexpected JSON-RPC body');
33
+ }
34
+ async function startServer(callBehavior) {
35
+ const server = http.createServer((req, res) => {
36
+ const chunks = [];
37
+ req.on('data', (chunk) => chunks.push(chunk));
38
+ req.on('end', () => {
39
+ const body = JSON.parse(Buffer.concat(chunks).toString());
40
+ assertRequest(body);
41
+ res.setHeader('content-type', 'application/json');
42
+ const reply = (payload) => res.end(JSON.stringify({ jsonrpc: '2.0', id: body.id, ...payload }));
43
+ const replyError = (code, message, data) => reply({ error: { code, message, data } });
44
+ if (body.method === EthMethod.ChainId) {
45
+ reply({ result: '0x' + CHAIN_ID.toString(16) });
46
+ return;
47
+ }
48
+ assert(body.method === EthMethod.Call, `Unexpected ${body.method}`);
49
+ switch (callBehavior) {
50
+ case CallBehavior.Http500:
51
+ res.statusCode = 500;
52
+ res.end('Internal Server Error');
53
+ return;
54
+ case CallBehavior.HeaderNotFound:
55
+ replyError(-32000, 'header not found');
56
+ return;
57
+ case CallBehavior.DestroySocket:
58
+ req.socket.destroy();
59
+ return;
60
+ case CallBehavior.RateLimit:
61
+ res.statusCode = 429;
62
+ res.end('Too Many Requests');
63
+ return;
64
+ case CallBehavior.RevertCode3:
65
+ replyError(3, 'execution reverted', '0x');
66
+ return;
67
+ case CallBehavior.ExecutionReverted:
68
+ replyError(-32000, 'execution reverted');
69
+ return;
70
+ case CallBehavior.EmptyResult:
71
+ reply({ result: '0x' });
72
+ return;
73
+ }
74
+ });
75
+ });
76
+ await new Promise((resolve) => server.listen(0, '127.0.0.1', resolve));
77
+ const address = server.address();
78
+ assert(address && typeof address === 'object', 'Server not listening');
79
+ return { server, url: `http://127.0.0.1:${address.port}` };
80
+ }
81
+ const cases = [
82
+ {
83
+ name: 'HTTP 500',
84
+ behavior: CallBehavior.Http500,
85
+ expectedMissingSelector: false,
86
+ },
87
+ {
88
+ name: 'JSON-RPC -32000 header not found',
89
+ behavior: CallBehavior.HeaderNotFound,
90
+ expectedMissingSelector: false,
91
+ },
92
+ {
93
+ name: 'dropped connection',
94
+ behavior: CallBehavior.DestroySocket,
95
+ expectedMissingSelector: false,
96
+ },
97
+ {
98
+ name: 'HTTP 429 rate limit',
99
+ behavior: CallBehavior.RateLimit,
100
+ expectedMissingSelector: false,
101
+ },
102
+ {
103
+ name: 'JSON-RPC code 3 revert with empty data',
104
+ behavior: CallBehavior.RevertCode3,
105
+ expectedMissingSelector: true,
106
+ },
107
+ {
108
+ name: 'JSON-RPC -32000 execution reverted',
109
+ behavior: CallBehavior.ExecutionReverted,
110
+ expectedMissingSelector: true,
111
+ },
112
+ {
113
+ name: 'empty eth_call result',
114
+ behavior: CallBehavior.EmptyResult,
115
+ expectedMissingSelector: true,
116
+ },
117
+ ];
118
+ describe('isMissingSelectorCallException against a real SmartProvider', function () {
119
+ this.timeout(20_000);
120
+ const servers = [];
121
+ afterEach(async () => {
122
+ await Promise.all(servers.splice(0).map((server) => new Promise((resolve) => {
123
+ server.closeAllConnections();
124
+ server.close(() => resolve());
125
+ })));
126
+ });
127
+ for (const c of cases) {
128
+ it(`returns ${c.expectedMissingSelector} for ${c.name}`, async () => {
129
+ const a = await startServer(c.behavior);
130
+ const b = await startServer(c.behavior);
131
+ servers.push(a.server, b.server);
132
+ const provider = new HyperlaneSmartProvider({ chainId: CHAIN_ID, name: 'test' }, [{ http: a.url }, { http: b.url }], [], { fallbackStaggerMs: FALLBACK_STAGGER_MS, maxRetries: 1 });
133
+ let thrown;
134
+ try {
135
+ await provider.call(CALL_PARAMS);
136
+ }
137
+ catch (error) {
138
+ thrown = error;
139
+ }
140
+ expect(thrown).to.be.instanceOf(Error);
141
+ expect(isMissingSelectorCallException(thrown)).to.equal(c.expectedMissingSelector);
142
+ });
143
+ }
144
+ });
145
+ //# sourceMappingURL=contract.transport.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.transport.test.js","sourceRoot":"","sources":["../../src/utils/contract.transport.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAErF,OAAO,EAAE,8BAA8B,EAAE,MAAM,eAAe,CAAC;AAE/D,MAAM,QAAQ,GAAG,CAAC,CAAC;AACnB,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAC/B,MAAM,WAAW,GAAG,EAAE,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;AAEvE,MAAM,SAAS,GAAG;IAChB,OAAO,EAAE,aAAa;IACtB,IAAI,EAAE,UAAU;CACR,CAAC;AAEX,MAAM,YAAY,GAAG;IACnB,OAAO,EAAE,SAAS;IAClB,cAAc,EAAE,gBAAgB;IAChC,aAAa,EAAE,eAAe;IAC9B,SAAS,EAAE,WAAW;IACtB,WAAW,EAAE,aAAa;IAC1B,iBAAiB,EAAE,mBAAmB;IACtC,WAAW,EAAE,aAAa;CAClB,CAAC;AAQX,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,IAAI,IAAI,KAAK;QACb,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ;QAC5B,QAAQ,IAAI,KAAK;QACjB,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CACjC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,IAAa;IAClC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAC3E,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,YAA0B;IAE1B,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC5C,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACtD,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACjB,MAAM,IAAI,GAAY,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YACnE,aAAa,CAAC,IAAI,CAAC,CAAC;YACpB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YAClD,MAAM,KAAK,GAAG,CAAC,OAAgC,EAAE,EAAE,CACjD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC;YACvE,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,OAAe,EAAE,IAAa,EAAE,EAAE,CAClE,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YAE5C,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC;gBACtC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAChD,OAAO;YACT,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,IAAI,EAAE,cAAc,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YACpE,QAAQ,YAAY,EAAE,CAAC;gBACrB,KAAK,YAAY,CAAC,OAAO;oBACvB,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;oBACrB,GAAG,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;oBACjC,OAAO;gBACT,KAAK,YAAY,CAAC,cAAc;oBAC9B,UAAU,CAAC,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;oBACvC,OAAO;gBACT,KAAK,YAAY,CAAC,aAAa;oBAC7B,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACrB,OAAO;gBACT,KAAK,YAAY,CAAC,SAAS;oBACzB,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;oBACrB,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;oBAC7B,OAAO;gBACT,KAAK,YAAY,CAAC,WAAW;oBAC3B,UAAU,CAAC,CAAC,EAAE,oBAAoB,EAAE,IAAI,CAAC,CAAC;oBAC1C,OAAO;gBACT,KAAK,YAAY,CAAC,iBAAiB;oBACjC,UAAU,CAAC,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;oBACzC,OAAO;gBACT,KAAK,YAAY,CAAC,WAAW;oBAC3B,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;oBACxB,OAAO;YACX,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7E,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IACjC,MAAM,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,sBAAsB,CAAC,CAAC;IACvE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;AAC7D,CAAC;AAQD,MAAM,KAAK,GAAW;IACpB;QACE,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,YAAY,CAAC,OAAO;QAC9B,uBAAuB,EAAE,KAAK;KAC/B;IACD;QACE,IAAI,EAAE,kCAAkC;QACxC,QAAQ,EAAE,YAAY,CAAC,cAAc;QACrC,uBAAuB,EAAE,KAAK;KAC/B;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,YAAY,CAAC,aAAa;QACpC,uBAAuB,EAAE,KAAK;KAC/B;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,YAAY,CAAC,SAAS;QAChC,uBAAuB,EAAE,KAAK;KAC/B;IACD;QACE,IAAI,EAAE,wCAAwC;QAC9C,QAAQ,EAAE,YAAY,CAAC,WAAW;QAClC,uBAAuB,EAAE,IAAI;KAC9B;IACD;QACE,IAAI,EAAE,oCAAoC;QAC1C,QAAQ,EAAE,YAAY,CAAC,iBAAiB;QACxC,uBAAuB,EAAE,IAAI;KAC9B;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,YAAY,CAAC,WAAW;QAClC,uBAAuB,EAAE,IAAI;KAC9B;CACF,CAAC;AAEF,QAAQ,CAAC,6DAA6D,EAAE;IACtE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAErB,MAAM,OAAO,GAAkB,EAAE,CAAC;IAElC,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,OAAO,CAAC,GAAG,CACf,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CACnB,CAAC,MAAM,EAAE,EAAE,CACT,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAC5B,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAC7B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QAChC,CAAC,CAAC,CACL,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,EAAE,CAAC,WAAW,CAAC,CAAC,uBAAuB,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,IAAI,EAAE;YAClE,MAAM,CAAC,GAAG,MAAM,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACxC,MAAM,CAAC,GAAG,MAAM,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAI,sBAAsB,CACzC,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EACnC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,EAClC,EAAE,EACF,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC,EAAE,CAC1D,CAAC;YAEF,IAAI,MAAe,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACnC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,GAAG,KAAK,CAAC;YACjB,CAAC;YAED,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,CAAC,8BAA8B,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CACrD,CAAC,CAAC,uBAAuB,CAC1B,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -2,12 +2,18 @@ import { Address, WithAddress } from '@hyperlane-xyz/utils';
2
2
  import { TokenType } from '../token/config.js';
3
3
  import { DelayedFlowRouterHookIsmConfig, IsmConfig, NetFlowRateLimitedHookIsmConfig } from '../ism/types.js';
4
4
  type ChainAddresses = Record<string, string>;
5
+ export declare function ismTreeContainsRateLimited(ism: IsmConfig): boolean;
5
6
  /**
6
- * Extracts the ISM and Hook factory addresses from chain-specific registry addresses
7
- * @param registryAddresses The registry addresses for a specific chain
8
- * @returns The extracted ISM and Hook factory addresses
7
+ * True if a `rateLimited` node appears anywhere inside a `compositeIsm` in
8
+ * the tree.
9
+ *
10
+ * Deliberately separate from {@link ismTreeContainsRateLimited} rather than
11
+ * folded into it: that predicate gates the EVM `rateLimitedIsm`'s
12
+ * deferred-deploy machinery, which asserts an Ethereum/Tron chain
13
+ * (`resolveWarpIsmAndHook` and its callers in `deploy/warp.ts`). A
14
+ * compositeIsm is a Sealevel program and must never enter those paths.
9
15
  */
10
- export declare function ismTreeContainsRateLimited(ism: unknown): boolean;
16
+ export declare function ismTreeContainsCompositeRateLimited(ism: IsmConfig): boolean;
11
17
  /**
12
18
  * Recursively sets `recipient` on all RATE_LIMITED ISM nodes in the config tree.
13
19
  * Pass `undefined` to strip the field.
@@ -19,13 +25,13 @@ export type HybridHookIsmConfig = NetFlowRateLimitedHookIsmConfig | DelayedFlowR
19
25
  * True if a warp-route hybrid hook/ISM node (NET_FLOW_RATE_LIMITED or
20
26
  * DELAYED_FLOW_ROUTER) exists anywhere in the ISM config tree.
21
27
  */
22
- export declare function ismTreeContainsHybridHookIsm(ism: unknown): boolean;
28
+ export declare function ismTreeContainsHybridHookIsm(ism: IsmConfig | undefined): boolean;
23
29
  /**
24
30
  * True if a MAILBOX_DEFAULT or hybrid hook/ISM node exists anywhere in the
25
31
  * tree. Used to keep warp-route-only and self-referential ISM types out of
26
32
  * core default-ISM configs (see core/types.ts).
27
33
  */
28
- export declare function ismTreeContainsMailboxDefaultOrHybrid(ism: unknown): boolean;
34
+ export declare function ismTreeContainsMailboxDefaultOrHybrid(ism: IsmConfig): boolean;
29
35
  /**
30
36
  * Deep-collects every hybrid hook/ISM node in an ISM config tree (including
31
37
  * derived trees, whose nodes additionally carry an `address` field).
@@ -1 +1 @@
1
- {"version":3,"file":"ism.d.ts","sourceRoot":"","sources":["../../src/utils/ism.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ism.d.ts","sourceRoot":"","sources":["../../src/utils/ism.ts"],"names":[],"mappings":"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"}
package/dist/utils/ism.js CHANGED
@@ -1,35 +1,100 @@
1
1
  import { addressToBytes32, assert, deepEquals, eqAddress, pick, rootLogger, } from '@hyperlane-xyz/utils';
2
2
  import { multisigIsmVerifyCosts } from '../consts/multisigIsmVerifyCosts.js';
3
3
  import { TokenType } from '../token/config.js';
4
- import { IsmType, } from '../ism/types.js';
4
+ import { CompositeIsmNodeType, IsmType, } from '../ism/types.js';
5
5
  const logger = rootLogger.child({ module: 'IsmConfigUtils' });
6
6
  function isRecord(value) {
7
7
  return typeof value === 'object' && value !== null;
8
8
  }
9
+ /** True if any node of a compositeIsm tree satisfies `matches`. */
10
+ function compositeIsmNodeSome(node, matches) {
11
+ if (matches(node))
12
+ return true;
13
+ switch (node.type) {
14
+ case CompositeIsmNodeType.AGGREGATION:
15
+ return node.subIsms.some((subIsm) => compositeIsmNodeSome(subIsm, matches));
16
+ case CompositeIsmNodeType.AMOUNT_ROUTING:
17
+ return (compositeIsmNodeSome(node.lower, matches) ||
18
+ compositeIsmNodeSome(node.upper, matches));
19
+ case CompositeIsmNodeType.ROUTING:
20
+ case CompositeIsmNodeType.FALLBACK_ROUTING:
21
+ return Object.values(node.domains ?? {}).some((domainNode) => compositeIsmNodeSome(domainNode, matches));
22
+ case CompositeIsmNodeType.TRUSTED_RELAYER:
23
+ case CompositeIsmNodeType.MULTISIG_MESSAGE_ID:
24
+ case CompositeIsmNodeType.TEST:
25
+ case CompositeIsmNodeType.PAUSABLE:
26
+ case CompositeIsmNodeType.RATE_LIMITED:
27
+ return false;
28
+ default: {
29
+ const exhaustiveCheck = node;
30
+ return exhaustiveCheck;
31
+ }
32
+ }
33
+ }
9
34
  /**
10
- * Extracts the ISM and Hook factory addresses from chain-specific registry addresses
11
- * @param registryAddresses The registry addresses for a specific chain
12
- * @returns The extracted ISM and Hook factory addresses
35
+ * True if any typed node in an ISM tree satisfies `matches`.
36
+ * Both switches are exhaustive so new container types must define traversal.
13
37
  */
14
- export function ismTreeContainsRateLimited(ism) {
15
- if (typeof ism !== 'object' || ism === null)
38
+ function ismTreeSome(ism, matches) {
39
+ if (typeof ism === 'string')
16
40
  return false;
17
- const node = ism;
18
- if (node.type === IsmType.RATE_LIMITED)
41
+ if (matches(ism))
19
42
  return true;
20
- if (Array.isArray(node.modules)) {
21
- if (node.modules.some(ismTreeContainsRateLimited))
22
- return true;
23
- }
24
- if (node.domains !== null && typeof node.domains === 'object') {
25
- if (Object.values(node.domains).some(ismTreeContainsRateLimited))
26
- return true;
43
+ switch (ism.type) {
44
+ case IsmType.AGGREGATION:
45
+ case IsmType.STORAGE_AGGREGATION:
46
+ return ism.modules.some((module) => ismTreeSome(module, matches));
47
+ case IsmType.ROUTING:
48
+ case IsmType.FALLBACK_ROUTING:
49
+ case IsmType.INCREMENTAL_ROUTING:
50
+ return Object.values(ism.domains).some((domainIsm) => ismTreeSome(domainIsm, matches));
51
+ case IsmType.AMOUNT_ROUTING:
52
+ return (ismTreeSome(ism.lowerIsm, matches) || ismTreeSome(ism.upperIsm, matches));
53
+ case IsmType.COMPOSITE:
54
+ return compositeIsmNodeSome(ism.root, matches);
55
+ case IsmType.ROUTING_MESSAGE_ID_MULTISIG:
56
+ case IsmType.TEST_ISM:
57
+ case IsmType.OP_STACK:
58
+ case IsmType.PAUSABLE:
59
+ case IsmType.TRUSTED_RELAYER:
60
+ case IsmType.CCIP:
61
+ case IsmType.RATE_LIMITED:
62
+ case IsmType.BLACKLIST:
63
+ case IsmType.NET_FLOW_RATE_LIMITED:
64
+ case IsmType.DELAYED_FLOW_ROUTER:
65
+ case IsmType.MAILBOX_DEFAULT:
66
+ case IsmType.MERKLE_ROOT_MULTISIG:
67
+ case IsmType.MESSAGE_ID_MULTISIG:
68
+ case IsmType.STORAGE_MERKLE_ROOT_MULTISIG:
69
+ case IsmType.STORAGE_MESSAGE_ID_MULTISIG:
70
+ case IsmType.WEIGHTED_MERKLE_ROOT_MULTISIG:
71
+ case IsmType.WEIGHTED_MESSAGE_ID_MULTISIG:
72
+ case IsmType.INTERCHAIN_ACCOUNT_ROUTING:
73
+ case IsmType.ARB_L2_TO_L1:
74
+ case IsmType.OFFCHAIN_LOOKUP:
75
+ case IsmType.UNKNOWN:
76
+ return false;
77
+ default: {
78
+ const exhaustiveCheck = ism;
79
+ return exhaustiveCheck;
80
+ }
27
81
  }
28
- if (ismTreeContainsRateLimited(node.lowerIsm))
29
- return true;
30
- if (ismTreeContainsRateLimited(node.upperIsm))
31
- return true;
32
- return false;
82
+ }
83
+ export function ismTreeContainsRateLimited(ism) {
84
+ return ismTreeSome(ism, (node) => node.type === IsmType.RATE_LIMITED);
85
+ }
86
+ /**
87
+ * True if a `rateLimited` node appears anywhere inside a `compositeIsm` in
88
+ * the tree.
89
+ *
90
+ * Deliberately separate from {@link ismTreeContainsRateLimited} rather than
91
+ * folded into it: that predicate gates the EVM `rateLimitedIsm`'s
92
+ * deferred-deploy machinery, which asserts an Ethereum/Tron chain
93
+ * (`resolveWarpIsmAndHook` and its callers in `deploy/warp.ts`). A
94
+ * compositeIsm is a Sealevel program and must never enter those paths.
95
+ */
96
+ export function ismTreeContainsCompositeRateLimited(ism) {
97
+ return ismTreeSome(ism, (node) => node.type === CompositeIsmNodeType.RATE_LIMITED);
33
98
  }
34
99
  /**
35
100
  * Recursively sets `recipient` on all RATE_LIMITED ISM nodes in the config tree.
@@ -78,7 +143,10 @@ export function setRateLimitedIsmRecipient(ismConfig, recipient, defaultOwner) {
78
143
  * DELAYED_FLOW_ROUTER) exists anywhere in the ISM config tree.
79
144
  */
80
145
  export function ismTreeContainsHybridHookIsm(ism) {
81
- return collectHybridIsmNodesFromUnknown(ism).length > 0;
146
+ if (!ism)
147
+ return false;
148
+ return ismTreeSome(ism, (node) => node.type === IsmType.NET_FLOW_RATE_LIMITED ||
149
+ node.type === IsmType.DELAYED_FLOW_ROUTER);
82
150
  }
83
151
  /**
84
152
  * True if a MAILBOX_DEFAULT or hybrid hook/ISM node exists anywhere in the
@@ -86,8 +154,9 @@ export function ismTreeContainsHybridHookIsm(ism) {
86
154
  * core default-ISM configs (see core/types.ts).
87
155
  */
88
156
  export function ismTreeContainsMailboxDefaultOrHybrid(ism) {
89
- return (ismTreeContainsHybridHookIsm(ism) ||
90
- ismTreeSome(ism, (node) => node.type === IsmType.MAILBOX_DEFAULT));
157
+ return ismTreeSome(ism, (node) => node.type === IsmType.MAILBOX_DEFAULT ||
158
+ node.type === IsmType.NET_FLOW_RATE_LIMITED ||
159
+ node.type === IsmType.DELAYED_FLOW_ROUTER);
91
160
  }
92
161
  /**
93
162
  * Deep-collects every hybrid hook/ISM node in an ISM config tree (including
@@ -103,24 +172,6 @@ function isHybridIsmNode(node) {
103
172
  return (node.type === IsmType.NET_FLOW_RATE_LIMITED ||
104
173
  node.type === IsmType.DELAYED_FLOW_ROUTER);
105
174
  }
106
- /** True if any node in the tree satisfies `matches`. */
107
- function ismTreeSome(ism, matches) {
108
- if (!isRecord(ism))
109
- return false;
110
- const node = ism;
111
- if (matches(node))
112
- return true;
113
- if (Array.isArray(node.modules)) {
114
- if (node.modules.some((module) => ismTreeSome(module, matches)))
115
- return true;
116
- }
117
- if (isRecord(node.domains)) {
118
- const domains = Object.values(node.domains);
119
- if (domains.some((domainIsm) => ismTreeSome(domainIsm, matches)))
120
- return true;
121
- }
122
- return (ismTreeSome(node.lowerIsm, matches) || ismTreeSome(node.upperIsm, matches));
123
- }
124
175
  function collectHybridIsmNodesFromUnknown(ism) {
125
176
  if (!isRecord(ism))
126
177
  return [];
@@ -1 +1 @@
1
- {"version":3,"file":"ism.js","sourceRoot":"","sources":["../../src/utils/ism.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ism.js","sourceRoot":"","sources":["../../src/utils/ism.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { expect } from 'chai';
2
2
  import { ethers } from 'ethers';
3
3
  import { test1, test2, test3 } from '../consts/testChains.js';
4
- import { IsmType } from '../ism/types.js';
4
+ import { CompositeIsmNodeType, IsmType } from '../ism/types.js';
5
5
  import { MultiProvider } from '../providers/MultiProvider.js';
6
- import { DelayedFlowRemoteIsmsSourceType, canonicalizeRemoteIsms, collectHybridIsmNodes, completeHybridIsmNodes, ismTreeContainsHybridHookIsm, prepareHybridIsmNodesForDeploy, resolveDelayedFlowRemoteIsms, } from './ism.js';
6
+ import { DelayedFlowRemoteIsmsSourceType, canonicalizeRemoteIsms, collectHybridIsmNodes, completeHybridIsmNodes, ismTreeContainsCompositeRateLimited, ismTreeContainsHybridHookIsm, ismTreeContainsMailboxDefaultOrHybrid, ismTreeContainsRateLimited, prepareHybridIsmNodesForDeploy, resolveDelayedFlowRemoteIsms, } from './ism.js';
7
7
  const WARP_ROUTER = '0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';
8
8
  const DEPLOYER = '0xdddddddddddddddddddddddddddddddddddddddd';
9
9
  const DEFAULT_OWNER = '0xcccccccccccccccccccccccccccccccccccccccc';
@@ -46,6 +46,79 @@ function aggregationOf(...modules) {
46
46
  modules,
47
47
  };
48
48
  }
49
+ describe('typed ISM tree traversal', () => {
50
+ it('finds EVM rate limiting through SDK containers only', () => {
51
+ const tree = {
52
+ type: IsmType.AMOUNT_ROUTING,
53
+ threshold: 1,
54
+ lowerIsm: { type: IsmType.TEST_ISM },
55
+ upperIsm: aggregationOf({
56
+ type: IsmType.ROUTING,
57
+ owner: OWNER,
58
+ domains: {
59
+ test2: {
60
+ type: IsmType.RATE_LIMITED,
61
+ maxCapacity: '86400',
62
+ duration: 86400n,
63
+ },
64
+ },
65
+ }),
66
+ };
67
+ expect(ismTreeContainsRateLimited(tree)).to.be.true;
68
+ expect(ismTreeContainsCompositeRateLimited(tree)).to.be.false;
69
+ });
70
+ it('finds composite rate limiting through both container unions', () => {
71
+ const tree = aggregationOf({
72
+ type: IsmType.ROUTING,
73
+ owner: OWNER,
74
+ domains: {
75
+ test2: {
76
+ type: IsmType.COMPOSITE,
77
+ owner: OWNER,
78
+ root: {
79
+ type: CompositeIsmNodeType.AMOUNT_ROUTING,
80
+ threshold: '1',
81
+ lower: { type: CompositeIsmNodeType.TEST, accept: true },
82
+ upper: {
83
+ type: CompositeIsmNodeType.ROUTING,
84
+ domains: {
85
+ test3: {
86
+ type: CompositeIsmNodeType.RATE_LIMITED,
87
+ maxCapacity: '86400',
88
+ mailbox: WARP_ROUTER,
89
+ },
90
+ },
91
+ },
92
+ },
93
+ },
94
+ },
95
+ });
96
+ expect(ismTreeContainsRateLimited(tree)).to.be.false;
97
+ expect(ismTreeContainsCompositeRateLimited(tree)).to.be.true;
98
+ });
99
+ it('traverses past routingMessageIdMultisigIsm leaves without matching', () => {
100
+ const tree = aggregationOf({
101
+ type: IsmType.ROUTING_MESSAGE_ID_MULTISIG,
102
+ owner: OWNER,
103
+ domains: {
104
+ test2: { validators: [RELAYER], threshold: 1 },
105
+ },
106
+ });
107
+ expect(ismTreeContainsRateLimited(tree)).to.be.false;
108
+ expect(ismTreeContainsCompositeRateLimited(tree)).to.be.false;
109
+ expect(ismTreeContainsMailboxDefaultOrHybrid(tree)).to.be.false;
110
+ });
111
+ it('finds mailbox-incompatible ISMs through SDK containers', () => {
112
+ const tree = {
113
+ type: IsmType.ROUTING,
114
+ owner: OWNER,
115
+ domains: {
116
+ test2: aggregationOf({ type: IsmType.MAILBOX_DEFAULT }),
117
+ },
118
+ };
119
+ expect(ismTreeContainsMailboxDefaultOrHybrid(tree)).to.be.true;
120
+ });
121
+ });
49
122
  describe('hybrid hook/ISM tree helpers', () => {
50
123
  describe('ismTreeContainsHybridHookIsm', () => {
51
124
  it('detects hybrid nodes nested in containers', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"ism.test.js","sourceRoot":"","sources":["../../src/utils/ism.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ism.test.js","sourceRoot":"","sources":["../../src/utils/ism.test.ts"],"names":[],"mappings":"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"}