@hyperlane-xyz/sdk 44.0.2 → 45.0.1

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 (189) hide show
  1. package/dist/consts/multisigIsm.d.ts.map +1 -1
  2. package/dist/consts/multisigIsm.js +104 -772
  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 +32 -43
  24. package/dist/deploy/warp.js.map +1 -1
  25. package/dist/deploy/warp.test.js +62 -1
  26. package/dist/deploy/warp.test.js.map +1 -1
  27. package/dist/gas/adapters/SealevelIgpAdapter.d.ts +3 -2
  28. package/dist/gas/adapters/SealevelIgpAdapter.d.ts.map +1 -1
  29. package/dist/gas/adapters/SealevelIgpAdapter.js +3 -2
  30. package/dist/gas/adapters/SealevelIgpAdapter.js.map +1 -1
  31. package/dist/index.d.ts +2 -2
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +2 -2
  34. package/dist/index.js.map +1 -1
  35. package/dist/ism/EvmIsmModule.d.ts.map +1 -1
  36. package/dist/ism/EvmIsmModule.js +5 -1
  37. package/dist/ism/EvmIsmModule.js.map +1 -1
  38. package/dist/ism/EvmIsmModule.test.js +109 -0
  39. package/dist/ism/EvmIsmModule.test.js.map +1 -1
  40. package/dist/ism/HyperlaneIsmFactory.d.ts +26 -6
  41. package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
  42. package/dist/ism/HyperlaneIsmFactory.hardhat-test.js +60 -0
  43. package/dist/ism/HyperlaneIsmFactory.hardhat-test.js.map +1 -1
  44. package/dist/ism/HyperlaneIsmFactory.js +165 -34
  45. package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
  46. package/dist/ism/HyperlaneIsmFactory.test.js +33 -6
  47. package/dist/ism/HyperlaneIsmFactory.test.js.map +1 -1
  48. package/dist/ism/types.d.ts +18 -2
  49. package/dist/ism/types.d.ts.map +1 -1
  50. package/dist/ism/types.js +43 -3
  51. package/dist/ism/types.js.map +1 -1
  52. package/dist/ism/types.test.js +232 -56
  53. package/dist/ism/types.test.js.map +1 -1
  54. package/dist/ism/utils.d.ts.map +1 -1
  55. package/dist/ism/utils.js +13 -0
  56. package/dist/ism/utils.js.map +1 -1
  57. package/dist/ism/utils.test.js +43 -1
  58. package/dist/ism/utils.test.js.map +1 -1
  59. package/dist/metadata/ChainMetadataManager.d.ts +1 -0
  60. package/dist/metadata/ChainMetadataManager.d.ts.map +1 -1
  61. package/dist/metadata/ChainMetadataManager.js +1 -0
  62. package/dist/metadata/ChainMetadataManager.js.map +1 -1
  63. package/dist/metadata/ChainMetadataManager.test.js +14 -1
  64. package/dist/metadata/ChainMetadataManager.test.js.map +1 -1
  65. package/dist/metadata/ChainMetadataResolver.d.ts +1 -0
  66. package/dist/metadata/ChainMetadataResolver.d.ts.map +1 -1
  67. package/dist/metadata/ChainMetadataResolver.js +1 -0
  68. package/dist/metadata/ChainMetadataResolver.js.map +1 -1
  69. package/dist/metadata/ChainMetadataResolver.test.js +4 -0
  70. package/dist/metadata/ChainMetadataResolver.test.js.map +1 -1
  71. package/dist/metadata/agentConfig.d.ts +209 -93
  72. package/dist/metadata/agentConfig.d.ts.map +1 -1
  73. package/dist/metadata/agentConfig.js +106 -13
  74. package/dist/metadata/agentConfig.js.map +1 -1
  75. package/dist/metadata/agentConfig.test.js +277 -25
  76. package/dist/metadata/agentConfig.test.js.map +1 -1
  77. package/dist/metadata/chainMetadata.test.js +25 -0
  78. package/dist/metadata/chainMetadata.test.js.map +1 -1
  79. package/dist/metadata/chainMetadataTypes.d.ts +36 -0
  80. package/dist/metadata/chainMetadataTypes.d.ts.map +1 -1
  81. package/dist/metadata/chainMetadataTypes.js +26 -0
  82. package/dist/metadata/chainMetadataTypes.js.map +1 -1
  83. package/dist/providers/SeismicSigner.d.ts +4 -12
  84. package/dist/providers/SeismicSigner.d.ts.map +1 -1
  85. package/dist/providers/SeismicSigner.js +84 -35
  86. package/dist/providers/SeismicSigner.js.map +1 -1
  87. package/dist/providers/SeismicSigner.test.d.ts +2 -0
  88. package/dist/providers/SeismicSigner.test.d.ts.map +1 -0
  89. package/dist/providers/SeismicSigner.test.js +160 -0
  90. package/dist/providers/SeismicSigner.test.js.map +1 -0
  91. package/dist/providers/SmartProvider/SmartProvider.d.ts +1 -5
  92. package/dist/providers/SmartProvider/SmartProvider.d.ts.map +1 -1
  93. package/dist/providers/SmartProvider/SmartProvider.emptyResponse.test.d.ts +2 -0
  94. package/dist/providers/SmartProvider/SmartProvider.emptyResponse.test.d.ts.map +1 -0
  95. package/dist/providers/SmartProvider/SmartProvider.emptyResponse.test.js +164 -0
  96. package/dist/providers/SmartProvider/SmartProvider.emptyResponse.test.js.map +1 -0
  97. package/dist/providers/SmartProvider/SmartProvider.js +35 -72
  98. package/dist/providers/SmartProvider/SmartProvider.js.map +1 -1
  99. package/dist/providers/SmartProvider/SmartProvider.test.js +181 -2
  100. package/dist/providers/SmartProvider/SmartProvider.test.js.map +1 -1
  101. package/dist/providers/SmartProvider/jsonRpcError.d.ts +7 -0
  102. package/dist/providers/SmartProvider/jsonRpcError.d.ts.map +1 -0
  103. package/dist/providers/SmartProvider/jsonRpcError.js +67 -0
  104. package/dist/providers/SmartProvider/jsonRpcError.js.map +1 -0
  105. package/dist/providers/SmartProvider/types.d.ts +1 -0
  106. package/dist/providers/SmartProvider/types.d.ts.map +1 -1
  107. package/dist/providers/builders/ethersV5.d.ts +0 -1
  108. package/dist/providers/builders/ethersV5.d.ts.map +1 -1
  109. package/dist/providers/builders/ethersV5.js +19 -5
  110. package/dist/providers/builders/ethersV5.js.map +1 -1
  111. package/dist/providers/builders/ethersV5.test.d.ts +2 -0
  112. package/dist/providers/builders/ethersV5.test.d.ts.map +1 -0
  113. package/dist/providers/builders/ethersV5.test.js +77 -0
  114. package/dist/providers/builders/ethersV5.test.js.map +1 -0
  115. package/dist/providers/builders/radix.browser.d.ts +1 -0
  116. package/dist/providers/builders/radix.browser.d.ts.map +1 -1
  117. package/dist/providers/builders/radix.browser.js +1 -0
  118. package/dist/providers/builders/radix.browser.js.map +1 -1
  119. package/dist/providers/builders/radix.d.ts.map +1 -1
  120. package/dist/providers/builders/radix.gateway.test.d.ts +2 -0
  121. package/dist/providers/builders/radix.gateway.test.d.ts.map +1 -0
  122. package/dist/providers/builders/radix.gateway.test.js +39 -0
  123. package/dist/providers/builders/radix.gateway.test.js.map +1 -0
  124. package/dist/providers/builders/radix.js +1 -0
  125. package/dist/providers/builders/radix.js.map +1 -1
  126. package/dist/providers/builders/radix.test.js +1 -0
  127. package/dist/providers/builders/radix.test.js.map +1 -1
  128. package/dist/providers/providerBuilders.d.ts +1 -1
  129. package/dist/providers/providerBuilders.d.ts.map +1 -1
  130. package/dist/providers/providerBuilders.js +1 -1
  131. package/dist/providers/providerBuilders.js.map +1 -1
  132. package/dist/rpc/evm/EvmEventLogsReader.hardhat-test.js +60 -8
  133. package/dist/rpc/evm/EvmEventLogsReader.hardhat-test.js.map +1 -1
  134. package/dist/test/errors.d.ts +25 -0
  135. package/dist/test/errors.d.ts.map +1 -1
  136. package/dist/test/errors.js +31 -0
  137. package/dist/test/errors.js.map +1 -1
  138. package/dist/test/fixtures/warp-route-replay/record.d.ts +2 -0
  139. package/dist/test/fixtures/warp-route-replay/record.d.ts.map +1 -0
  140. package/dist/test/fixtures/warp-route-replay/record.js +32 -0
  141. package/dist/test/fixtures/warp-route-replay/record.js.map +1 -0
  142. package/dist/test/replayRpc.d.ts +82 -0
  143. package/dist/test/replayRpc.d.ts.map +1 -0
  144. package/dist/test/replayRpc.js +331 -0
  145. package/dist/test/replayRpc.js.map +1 -0
  146. package/dist/test/replayScenarios.d.ts +19 -0
  147. package/dist/test/replayScenarios.d.ts.map +1 -0
  148. package/dist/test/replayScenarios.js +89 -0
  149. package/dist/test/replayScenarios.js.map +1 -0
  150. package/dist/timelock/evm/EvmTimelockReader.hardhat-test.js +92 -7
  151. package/dist/timelock/evm/EvmTimelockReader.hardhat-test.js.map +1 -1
  152. package/dist/timelock/evm/errors.js +1 -1
  153. package/dist/timelock/evm/errors.js.map +1 -1
  154. package/dist/token/EvmWarpRouteReader.d.ts +27 -0
  155. package/dist/token/EvmWarpRouteReader.d.ts.map +1 -1
  156. package/dist/token/EvmWarpRouteReader.hardhat-test.js +28 -3
  157. package/dist/token/EvmWarpRouteReader.hardhat-test.js.map +1 -1
  158. package/dist/token/EvmWarpRouteReader.js +172 -42
  159. package/dist/token/EvmWarpRouteReader.js.map +1 -1
  160. package/dist/token/EvmWarpRouteReader.replay.test.d.ts +2 -0
  161. package/dist/token/EvmWarpRouteReader.replay.test.d.ts.map +1 -0
  162. package/dist/token/EvmWarpRouteReader.replay.test.js +392 -0
  163. package/dist/token/EvmWarpRouteReader.replay.test.js.map +1 -0
  164. package/dist/token/EvmWarpRouteReader.test.js +529 -4
  165. package/dist/token/EvmWarpRouteReader.test.js.map +1 -1
  166. package/dist/token/types.d.ts +1 -1
  167. package/dist/token/warpCheck.d.ts +1 -0
  168. package/dist/token/warpCheck.d.ts.map +1 -1
  169. package/dist/token/warpCheck.js +25 -2
  170. package/dist/token/warpCheck.js.map +1 -1
  171. package/dist/token/warpCheck.test.js +119 -0
  172. package/dist/token/warpCheck.test.js.map +1 -1
  173. package/dist/utils/contract.d.ts +33 -0
  174. package/dist/utils/contract.d.ts.map +1 -1
  175. package/dist/utils/contract.js +116 -3
  176. package/dist/utils/contract.js.map +1 -1
  177. package/dist/utils/contract.test.js +465 -2
  178. package/dist/utils/contract.test.js.map +1 -1
  179. package/dist/utils/contract.transport.test.d.ts +2 -0
  180. package/dist/utils/contract.transport.test.d.ts.map +1 -0
  181. package/dist/utils/contract.transport.test.js +145 -0
  182. package/dist/utils/contract.transport.test.js.map +1 -0
  183. package/dist/utils/ism.d.ts +12 -6
  184. package/dist/utils/ism.d.ts.map +1 -1
  185. package/dist/utils/ism.js +92 -41
  186. package/dist/utils/ism.js.map +1 -1
  187. package/dist/utils/ism.test.js +75 -2
  188. package/dist/utils/ism.test.js.map +1 -1
  189. package/package.json +29 -15
@@ -1 +1 @@
1
- {"version":3,"file":"contract.test.js","sourceRoot":"","sources":["../../src/utils/contract.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contract.test.js","sourceRoot":"","sources":["../../src/utils/contract.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=contract.transport.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.transport.test.d.ts","sourceRoot":"","sources":["../../src/utils/contract.transport.test.ts"],"names":[],"mappings":""}
@@ -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":"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"}
@@ -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', () => {