@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
@@ -6,15 +6,18 @@ import { PublicKey } from '@solana/web3.js';
6
6
  import { z } from 'zod';
7
7
  import { ModuleType } from '@hyperlane-xyz/sdk';
8
8
  import { ProtocolType, isEmptyAddress } from '@hyperlane-xyz/utils';
9
- import { ChainMetadataSchemaObject, RpcUrlSchema, } from './chainMetadataTypes.js';
10
- import { ZHash, ZNzUint, ZUWei, ZUint } from './customZodTypes.js';
9
+ import { ChainMetadataSchemaObject } from './chainMetadataTypes.js';
10
+ import { ZHash, ZNzUint, ZUWei } from './customZodTypes.js';
11
11
  import { HyperlaneDeploymentArtifactsSchema, } from './deploymentArtifacts.js';
12
12
  import { MatchingListSchema } from './matchingList.js';
13
+ // Keep in sync with MAX_SIGN_CONCURRENCY in the validator settings parser.
14
+ const MAX_SIGN_CONCURRENCY = 1_000;
13
15
  export var RpcConsensusType;
14
16
  (function (RpcConsensusType) {
15
17
  RpcConsensusType["Single"] = "single";
16
18
  RpcConsensusType["Fallback"] = "fallback";
17
19
  RpcConsensusType["Quorum"] = "quorum";
20
+ RpcConsensusType["Majority"] = "majority";
18
21
  })(RpcConsensusType || (RpcConsensusType = {}));
19
22
  export var AgentLogLevel;
20
23
  (function (AgentLogLevel) {
@@ -142,6 +145,9 @@ const AgentCosmosChainMetadataSchema = z.object({
142
145
  .describe('The number of bytes used to represent a contract address.'),
143
146
  });
144
147
  const AgentSealevelChainMetadataSchema = z.object({
148
+ maxSupportedTransactionVersion: z
149
+ .union([z.literal(0), z.literal(1)])
150
+ .optional(),
145
151
  priorityFeeOracle: z
146
152
  .union([
147
153
  z.object({
@@ -163,16 +169,32 @@ const AgentSealevelChainMetadataSchema = z.object({
163
169
  url: z.string().optional(),
164
170
  })
165
171
  .optional(),
172
+ mailboxProcessAlt: z
173
+ .string()
174
+ .optional()
175
+ .describe('Legacy single ALT for Mailbox.process transactions.'),
176
+ mailboxProcessAlts: z
177
+ .array(z.string())
178
+ .min(1)
179
+ .optional()
180
+ .describe('ALTs used for Mailbox.process transactions, in compile order.'),
166
181
  processAltOverrides: z
167
182
  .union([
168
- z.array(z.object({
169
- matchingList: MatchingListSchema,
170
- addressLookupTable: z.string(),
171
- })),
183
+ z.array(z.union([
184
+ z.object({
185
+ matchingList: MatchingListSchema,
186
+ addressLookupTables: z.array(z.string()).min(1),
187
+ }),
188
+ z.object({
189
+ matchingList: MatchingListSchema,
190
+ addressLookupTable: z.string(),
191
+ addressLookupTables: z.never().optional(),
192
+ }),
193
+ ])),
172
194
  z.string().min(1),
173
195
  ])
174
196
  .optional()
175
- .describe('Per-message ALT overrides. Array of {matchingList, addressLookupTable} or JSON string.'),
197
+ .describe('Per-message ALT overrides. Accepts legacy addressLookupTable or plural addressLookupTables.'),
176
198
  urReveal: z
177
199
  .object({
178
200
  ccsUrl: z.url().describe('CCS endpoint for calldata lookup'),
@@ -201,21 +223,27 @@ export const AgentChainMetadataSchema = ChainMetadataSchemaObject.extend(Hyperla
201
223
  .optional()
202
224
  .describe('Specify a comma separated list of custom RPC URLs to use for this chain. If not specified, the default RPC urls will be used.'),
203
225
  additionalQuorumRpcUrls: z
204
- .array(RpcUrlSchema)
226
+ .never()
205
227
  .optional()
206
- .describe('Validator only: statically configured, *additional* RPC URLs that vote together with rpcUrls (2/3 majority, combined) on safety-critical merkle tree hook reads. Overridden entirely by customAdditionalQuorumRpcUrls when set, same as rpcUrls/customRpcUrls. See customAdditionalQuorumRpcUrls for the full quorum semantics.'),
228
+ .describe('Removed. Move endpoints into rpcUrls/customRpcUrls and remove this setting.'),
207
229
  customAdditionalQuorumRpcUrls: z
208
- .string()
230
+ .never()
209
231
  .optional()
210
- .describe('Validator only: comma separated list of *additional* RPC URLs that vote together with rpcUrls (2/3 majority, combined) on safety-critical merkle tree hook reads. Empty disables quorum verification. Intended for additional public RPCs only -- rpcUrls already votes in the same group, so there is no need to duplicate its (typically private) entries here.'),
232
+ .describe('Removed. Move endpoints into rpcUrls/customRpcUrls and remove this setting.'),
211
233
  rpcConsensusType: z
212
234
  .enum(RpcConsensusType)
213
- .describe('The consensus type to use when multiple RPCs are configured.')
235
+ .describe('RPC consensus policy. Validators default to majority for ceil(2N/3), with optional quorum for ceil(N/2) matching checkpoint histories across protocols. Majority is validator-only. Lightweight validators always require ceil(2N/3).')
214
236
  .optional(),
237
+ fallbackHedgeDelayMillis: ZNzUint.optional().describe('For fallback RPC consensus, start one speculative immutable read on the next provider after this delay. Unset disables hedging.'),
238
+ fallbackHedgeTimeoutMillis: ZNzUint.optional().describe('Per-provider timeout for hedged immutable reads. Requires fallbackHedgeDelayMillis and defaults to 30000ms.'),
215
239
  signer: AgentSignerSchema.optional().describe('The signer to use for this chain'),
216
240
  index: z
217
241
  .object({
218
- from: ZUint.optional().describe('The starting block from which to index events.'),
242
+ from: z
243
+ .number()
244
+ .int()
245
+ .optional()
246
+ .describe('The absolute block or sequence to start indexing from. Negative values are offsets from the current tip in the selected index mode unit.'),
219
247
  chunk: ZNzUint.optional().describe('The number of blocks to index at a time.'),
220
248
  mode: z
221
249
  .enum(AgentIndexMode)
@@ -227,6 +255,21 @@ export const AgentChainMetadataSchema = ChainMetadataSchemaObject.extend(Hyperla
227
255
  })
228
256
  .extend(AgentCosmosChainMetadataSchema.partial().shape)
229
257
  .extend(AgentSealevelChainMetadataSchema.partial().shape)
258
+ .refine((metadata) => metadata.fallbackHedgeTimeoutMillis === undefined ||
259
+ metadata.fallbackHedgeDelayMillis !== undefined, {
260
+ message: 'fallbackHedgeTimeoutMillis requires fallbackHedgeDelayMillis',
261
+ path: ['fallbackHedgeTimeoutMillis'],
262
+ })
263
+ .refine((metadata) => metadata.fallbackHedgeDelayMillis === undefined ||
264
+ metadata.protocol === ProtocolType.Ethereum, {
265
+ message: 'fallback RPC hedging is only supported for Ethereum chains',
266
+ path: ['fallbackHedgeDelayMillis'],
267
+ })
268
+ .refine((metadata) => metadata.fallbackHedgeDelayMillis === undefined ||
269
+ metadata.rpcConsensusType === RpcConsensusType.Fallback, {
270
+ message: 'fallback RPC hedging requires fallback RPC consensus',
271
+ path: ['fallbackHedgeDelayMillis'],
272
+ })
230
273
  .refine((metadata) => {
231
274
  // Make sure that the signer is valid for the protocol
232
275
  const signerType = metadata.signer?.type;
@@ -439,6 +482,17 @@ export const RelayerAgentConfigSchema = AgentConfigSchema.extend({
439
482
  .boolean()
440
483
  .optional()
441
484
  .describe('Whether to enable IGP indexing'),
485
+ websocketUrl: z
486
+ .url()
487
+ .refine((value) => value.startsWith('ws://') || value.startsWith('wss://'), {
488
+ message: 'websocketUrl must use ws:// or wss://',
489
+ })
490
+ .optional()
491
+ .describe('Scraper-proxy WebSocket URL used for shared dispatch, Merkle, and gas-payment indexing.'),
492
+ websocketAuthorityEnabled: z
493
+ .boolean()
494
+ .optional()
495
+ .describe('Whether a healthy scraper-proxy stream may replace direct RPC indexing. Defaults to false.'),
442
496
  relayApiEnabled: z
443
497
  .boolean()
444
498
  .optional()
@@ -467,6 +521,13 @@ export const RelayerAgentConfigSchema = AgentConfigSchema.extend({
467
521
  .optional()
468
522
  .describe('Relay API allowed CORS origins, comma-separated. Defaults to https://nexus.hyperlane.xyz.'),
469
523
  }).superRefine((config, ctx) => {
524
+ if (config.websocketAuthorityEnabled && !config.websocketUrl) {
525
+ ctx.addIssue({
526
+ code: z.ZodIssueCode.custom,
527
+ path: ['websocketUrl'],
528
+ message: 'websocketUrl is required when websocketAuthorityEnabled is true',
529
+ });
530
+ }
470
531
  // Mirror the Rust relayer gate: the current IGP event does not expose the
471
532
  // token address, so exact non-native `feeToken` enforcement is rejected.
472
533
  const { policies, parseError } = gasPaymentEnforcementPolicies(config.gasPaymentEnforcement);
@@ -557,6 +618,38 @@ export const ValidatorAgentConfigSchema = AgentConfigSchema.extend({
557
618
  .describe('A checkpoint syncer that uses Google Cloud Storage'),
558
619
  ]),
559
620
  interval: ZNzUint.optional().describe('How long to wait between checking for new checkpoints in seconds. Defaults to 2s, falling back to the origin chain’s index.interval if set and this is unset.'),
621
+ maxSignConcurrency: ZNzUint.max(MAX_SIGN_CONCURRENCY)
622
+ .optional()
623
+ .describe(`Maximum number of checkpoints signed concurrently. Defaults to 50; maximum ${MAX_SIGN_CONCURRENCY}.`),
624
+ lightweight: z
625
+ .boolean()
626
+ .optional()
627
+ .describe('Uses trusted websocket indexing and requires at least two thirds of configured state-read endpoints to match local roots. Signs through the highest index supported by that majority, independently of rpcConsensusType. Disables RPC indexing fallback; insufficient agreement pauses signing.'),
628
+ leightweigt: z.boolean().optional().describe('Alias for lightweight.'),
629
+ websocketUrl: z
630
+ .url()
631
+ .refine((url) => /^wss?:\/\//i.test(url), {
632
+ message: 'Must use ws:// or wss://',
633
+ })
634
+ .optional()
635
+ .describe('Merkle tree insertion source for replay and live events. RPC indexing fallback is disabled in lightweight mode.'),
636
+ }).superRefine((config, ctx) => {
637
+ if (config.lightweight !== undefined &&
638
+ config.leightweigt !== undefined &&
639
+ config.lightweight !== config.leightweigt) {
640
+ ctx.addIssue({
641
+ code: z.ZodIssueCode.custom,
642
+ path: ['lightweight'],
643
+ message: 'lightweight and leightweigt must agree when both are set',
644
+ });
645
+ }
646
+ if ((config.lightweight ?? config.leightweigt) && !config.websocketUrl) {
647
+ ctx.addIssue({
648
+ code: z.ZodIssueCode.custom,
649
+ path: ['websocketUrl'],
650
+ message: 'websocketUrl is required in lightweight mode',
651
+ });
652
+ }
560
653
  });
561
654
  function formatAleoAddress(addresses) {
562
655
  const [mailboxProgram, mailbox] = addresses.mailbox.split('/');
@@ -1 +1 @@
1
- {"version":3,"file":"agentConfig.js","sourceRoot":"","sources":["../../src/metadata/agentConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agentConfig.js","sourceRoot":"","sources":["../../src/metadata/agentConfig.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,38 @@ import { expect } from 'chai';
2
2
  import { ProtocolType } from '@hyperlane-xyz/utils';
3
3
  import { TestChainName } from '../consts/testChains.js';
4
4
  import { MultiProvider } from '../providers/MultiProvider.js';
5
- import { AgentChainMetadataSchema, RelayerAgentConfigSchema, buildAgentConfig, } from './agentConfig.js';
5
+ import { AgentChainMetadataSchema, AgentSignerKeyType, RelayerAgentConfigSchema, RpcConsensusType, ValidatorAgentConfigSchema, buildAgentConfig, } from './agentConfig.js';
6
+ describe('ValidatorAgentConfigSchema maxSignConcurrency', () => {
7
+ const schema = ValidatorAgentConfigSchema.shape.maxSignConcurrency;
8
+ it('accepts values from 1 through 1,000', () => {
9
+ expect(schema.safeParse(1).success).to.be.true;
10
+ expect(schema.safeParse(1_000).success).to.be.true;
11
+ });
12
+ it('rejects values outside the configured bounds', () => {
13
+ expect(schema.safeParse(0).success).to.be.false;
14
+ expect(schema.safeParse(1_001).success).to.be.false;
15
+ });
16
+ });
17
+ describe('AgentChainMetadataSchema index.from', () => {
18
+ it('accepts negative relative block offsets', () => {
19
+ const result = AgentChainMetadataSchema.safeParse({
20
+ name: 'legacy',
21
+ domainId: 1000,
22
+ chainId: 1000,
23
+ protocol: ProtocolType.Ethereum,
24
+ rpcUrls: [{ http: 'http://localhost:8545' }],
25
+ mailbox: '0x0000000000000000000000000000000000000001',
26
+ interchainGasPaymaster: '0x0000000000000000000000000000000000000002',
27
+ validatorAnnounce: '0x0000000000000000000000000000000000000003',
28
+ merkleTreeHook: '0x0000000000000000000000000000000000000004',
29
+ index: { from: -10_000 },
30
+ });
31
+ expect(result.success).to.be.true;
32
+ if (result.success) {
33
+ expect(result.data.index?.from).to.equal(-10_000);
34
+ }
35
+ });
36
+ });
6
37
  describe('RelayerAgentConfigSchema feeToken gate', () => {
7
38
  const FEE_TOKEN = '0x0000000000000000000000000000000000000005';
8
39
  // Minimal chain metadata satisfying AgentChainMetadataSchema.
@@ -67,8 +98,33 @@ describe('RelayerAgentConfigSchema feeToken gate', () => {
67
98
  }));
68
99
  expect(result.success).to.be.true;
69
100
  });
101
+ it('accepts only WebSocket schemes for the scraper URL', () => {
102
+ expect(RelayerAgentConfigSchema.safeParse(config({
103
+ gasPaymentEnforcement: [{ type: 'onChainFeeQuoting' }],
104
+ websocketUrl: 'wss://scraper.example/ws/events',
105
+ })).success).to.be.true;
106
+ expect(RelayerAgentConfigSchema.safeParse(config({
107
+ gasPaymentEnforcement: [{ type: 'onChainFeeQuoting' }],
108
+ websocketUrl: 'https://scraper.example/ws/events',
109
+ })).success).to.be.false;
110
+ });
111
+ it('requires a WebSocket URL when scraper authority is enabled', () => {
112
+ expect(RelayerAgentConfigSchema.safeParse(config({
113
+ gasPaymentEnforcement: [{ type: 'onChainFeeQuoting' }],
114
+ websocketAuthorityEnabled: true,
115
+ })).success).to.be.false;
116
+ expect(RelayerAgentConfigSchema.safeParse(config({
117
+ gasPaymentEnforcement: [{ type: 'onChainFeeQuoting' }],
118
+ websocketAuthorityEnabled: true,
119
+ websocketUrl: 'wss://scraper.example/ws/events',
120
+ })).success).to.be.true;
121
+ expect(RelayerAgentConfigSchema.safeParse(config({
122
+ gasPaymentEnforcement: [{ type: 'onChainFeeQuoting' }],
123
+ websocketAuthorityEnabled: false,
124
+ })).success).to.be.true;
125
+ });
70
126
  });
71
- describe('AgentChainMetadataSchema additionalQuorumRpcUrls', () => {
127
+ describe('AgentChainMetadataSchema fallback hedging', () => {
72
128
  const baseChainMetadata = {
73
129
  name: 'legacy',
74
130
  domainId: 1000,
@@ -80,44 +136,119 @@ describe('AgentChainMetadataSchema additionalQuorumRpcUrls', () => {
80
136
  validatorAnnounce: '0x0000000000000000000000000000000000000003',
81
137
  merkleTreeHook: '0x0000000000000000000000000000000000000004',
82
138
  };
83
- it('parses and preserves a configured additionalQuorumRpcUrls array', () => {
84
- const additionalQuorumRpcUrls = [
85
- { http: 'http://quorum-a.example' },
86
- { http: 'http://quorum-b.example' },
87
- ];
139
+ it('parses positive fallback hedge settings', () => {
88
140
  const result = AgentChainMetadataSchema.safeParse({
89
141
  ...baseChainMetadata,
90
- additionalQuorumRpcUrls,
142
+ rpcConsensusType: RpcConsensusType.Fallback,
143
+ fallbackHedgeDelayMillis: 250,
144
+ fallbackHedgeTimeoutMillis: 30_000,
91
145
  });
92
146
  expect(result.success).to.be.true;
93
147
  if (result.success) {
94
- expect(result.data.additionalQuorumRpcUrls).to.deep.equal(additionalQuorumRpcUrls);
148
+ expect(result.data.fallbackHedgeDelayMillis).to.equal(250);
149
+ expect(result.data.fallbackHedgeTimeoutMillis).to.equal(30_000);
95
150
  }
96
151
  });
97
- it('leaves additionalQuorumRpcUrls unset when not configured', () => {
98
- const result = AgentChainMetadataSchema.safeParse(baseChainMetadata);
99
- expect(result.success).to.be.true;
100
- if (result.success) {
101
- expect(result.data.additionalQuorumRpcUrls).to.be.undefined;
152
+ it('rejects zero fallback hedge settings', () => {
153
+ expect(AgentChainMetadataSchema.safeParse({
154
+ ...baseChainMetadata,
155
+ fallbackHedgeDelayMillis: 0,
156
+ }).success).to.be.false;
157
+ });
158
+ it('rejects a timeout without a hedge delay', () => {
159
+ expect(AgentChainMetadataSchema.safeParse({
160
+ ...baseChainMetadata,
161
+ fallbackHedgeTimeoutMillis: 30_000,
162
+ }).success).to.be.false;
163
+ });
164
+ it('rejects fallback hedging with non-fallback RPC consensus', () => {
165
+ expect(AgentChainMetadataSchema.safeParse({
166
+ ...baseChainMetadata,
167
+ rpcConsensusType: RpcConsensusType.Single,
168
+ fallbackHedgeDelayMillis: 250,
169
+ }).success).to.be.false;
170
+ });
171
+ it('rejects fallback hedging without explicit fallback RPC consensus', () => {
172
+ expect(AgentChainMetadataSchema.safeParse({
173
+ ...baseChainMetadata,
174
+ fallbackHedgeDelayMillis: 250,
175
+ }).success).to.be.false;
176
+ });
177
+ });
178
+ describe('AgentChainMetadataSchema Sealevel process ALTs', () => {
179
+ const altA = '5iPyGCTQ2xHaCxv9A8GDJzt2tHWL8t9FK8UwG3KoQsYo';
180
+ const altB = '8MedWKtfT7QdMcZWDuVPx1iUrJRRZXDQpzyZAaqzQg2Z';
181
+ const baseChainMetadata = {
182
+ name: 'solanamainnet',
183
+ domainId: 1_399_811_149,
184
+ chainId: 101,
185
+ protocol: ProtocolType.Sealevel,
186
+ rpcUrls: [{ http: 'http://localhost:8899' }],
187
+ mailbox: 'E588QtVUvresuXq2KoNEwAmoifCzYGpRBdHByN9KQMbi',
188
+ interchainGasPaymaster: 'BhNcatUDC2D5JTyeaqrdSukiVFsEHK7e3hVmKMztwefv',
189
+ validatorAnnounce: 'Va1idatorAnnounce111111111111111111111111111',
190
+ merkleTreeHook: 'Merk1eTreeHook11111111111111111111111111111',
191
+ };
192
+ it('accepts legacy singular and new plural process ALT fields', () => {
193
+ expect(AgentChainMetadataSchema.safeParse({
194
+ ...baseChainMetadata,
195
+ mailboxProcessAlt: altA,
196
+ processAltOverrides: [{ matchingList: [{}], addressLookupTable: altB }],
197
+ }).success).to.equal(true);
198
+ const plural = AgentChainMetadataSchema.safeParse({
199
+ ...baseChainMetadata,
200
+ mailboxProcessAlts: [altA, altB],
201
+ processAltOverrides: [
202
+ { matchingList: [{}], addressLookupTables: [altA, altB] },
203
+ ],
204
+ });
205
+ expect(plural.success).to.equal(true);
206
+ if (plural.success) {
207
+ expect(plural.data.mailboxProcessAlts).to.deep.equal([altA, altB]);
208
+ expect(plural.data.processAltOverrides).to.deep.equal([
209
+ { matchingList: [{}], addressLookupTables: [altA, altB] },
210
+ ]);
102
211
  }
103
212
  });
104
- it('parses and preserves a configured customAdditionalQuorumRpcUrls override string', () => {
105
- const customAdditionalQuorumRpcUrls = 'http://quorum-a.example,http://quorum-b.example';
213
+ it('rejects empty plural ALT lists', () => {
214
+ expect(AgentChainMetadataSchema.safeParse({
215
+ ...baseChainMetadata,
216
+ mailboxProcessAlts: [],
217
+ }).success).to.equal(false);
218
+ expect(AgentChainMetadataSchema.safeParse({
219
+ ...baseChainMetadata,
220
+ processAltOverrides: [{ matchingList: [{}], addressLookupTables: [] }],
221
+ }).success).to.equal(false);
222
+ });
223
+ it('prefers plural process ALT overrides when both keys are present', () => {
106
224
  const result = AgentChainMetadataSchema.safeParse({
107
225
  ...baseChainMetadata,
108
- customAdditionalQuorumRpcUrls,
226
+ processAltOverrides: [
227
+ {
228
+ matchingList: [{}],
229
+ addressLookupTable: altA,
230
+ addressLookupTables: [altA, altB],
231
+ },
232
+ ],
109
233
  });
110
- expect(result.success).to.be.true;
234
+ expect(result.success).to.equal(true);
111
235
  if (result.success) {
112
- expect(result.data.customAdditionalQuorumRpcUrls).to.equal(customAdditionalQuorumRpcUrls);
236
+ expect(result.data.processAltOverrides).to.deep.equal([
237
+ { matchingList: [{}], addressLookupTables: [altA, altB] },
238
+ ]);
113
239
  }
114
240
  });
115
- it('leaves customAdditionalQuorumRpcUrls unset when not configured', () => {
116
- const result = AgentChainMetadataSchema.safeParse(baseChainMetadata);
117
- expect(result.success).to.be.true;
118
- if (result.success) {
119
- expect(result.data.customAdditionalQuorumRpcUrls).to.be.undefined;
120
- }
241
+ it('rejects an empty plural override even when the singular key is present', () => {
242
+ expect(AgentChainMetadataSchema.safeParse({
243
+ ...baseChainMetadata,
244
+ processAltOverrides: [
245
+ {
246
+ matchingList: [{}],
247
+ addressLookupTable: altA,
248
+ addressLookupTables: [],
249
+ },
250
+ ],
251
+ }).success).to.equal(false);
121
252
  });
122
253
  });
123
254
  describe('Agent config', () => {
@@ -142,4 +273,125 @@ describe('Agent config', () => {
142
273
  expect(result.chains[TestChainName.test1].merkleTreeHook).to.equal('0xmerkle');
143
274
  });
144
275
  });
276
+ describe('ValidatorAgentConfigSchema lightweight mode', () => {
277
+ const config = {
278
+ originChainName: 'test',
279
+ validator: { key: `0x${'11'.repeat(32)}` },
280
+ checkpointSyncer: { type: 'localStorage', path: '/tmp/checkpoints' },
281
+ chains: {
282
+ test: {
283
+ name: 'test',
284
+ domainId: 1337,
285
+ chainId: 1337,
286
+ protocol: ProtocolType.Ethereum,
287
+ rpcUrls: [
288
+ { http: 'https://rpc-a.example' },
289
+ { http: 'https://rpc-b.example' },
290
+ { http: 'https://rpc-c.example' },
291
+ ],
292
+ mailbox: '0x0000000000000000000000000000000000000001',
293
+ interchainGasPaymaster: '0x0000000000000000000000000000000000000002',
294
+ validatorAnnounce: '0x0000000000000000000000000000000000000003',
295
+ merkleTreeHook: '0x0000000000000000000000000000000000000004',
296
+ },
297
+ },
298
+ };
299
+ it('accepts normal quorum and majority for every supported protocol', () => {
300
+ for (const protocol of Object.values(ProtocolType)) {
301
+ for (const rpcConsensusType of [
302
+ RpcConsensusType.Quorum,
303
+ RpcConsensusType.Majority,
304
+ ]) {
305
+ const result = ValidatorAgentConfigSchema.safeParse({
306
+ ...config,
307
+ lightweight: false,
308
+ chains: {
309
+ test: {
310
+ ...config.chains.test,
311
+ protocol,
312
+ rpcConsensusType,
313
+ },
314
+ },
315
+ });
316
+ expect(result.success, `${protocol}/${rpcConsensusType}: ${result.error?.message}`).to.be.true;
317
+ }
318
+ }
319
+ });
320
+ it('requires a websocket URL with either spelling', () => {
321
+ for (const flag of ['lightweight', 'leightweigt']) {
322
+ expect(ValidatorAgentConfigSchema.safeParse({ ...config, [flag]: true })
323
+ .success).to.be.false;
324
+ expect(ValidatorAgentConfigSchema.safeParse({
325
+ ...config,
326
+ [flag]: true,
327
+ websocketUrl: 'wss://scraper.example/events',
328
+ }).success).to.be.true;
329
+ }
330
+ });
331
+ it('rejects removed quorum settings in both modes', () => {
332
+ for (const lightweight of [false, true]) {
333
+ for (const removed of [
334
+ { additionalQuorumRpcUrls: [{ http: 'https://quorum.example' }] },
335
+ { additionalQuorumRpcUrls: [] },
336
+ { customAdditionalQuorumRpcUrls: 'https://quorum.example' },
337
+ { customAdditionalQuorumRpcUrls: '' },
338
+ ]) {
339
+ expect(ValidatorAgentConfigSchema.safeParse({
340
+ ...config,
341
+ lightweight,
342
+ websocketUrl: 'wss://scraper.example',
343
+ chains: { test: { ...config.chains.test, ...removed } },
344
+ }).success).to.be.false;
345
+ }
346
+ }
347
+ });
348
+ it('accepts lightweight indexing for every supported protocol', () => {
349
+ for (const protocol of [
350
+ ProtocolType.Ethereum,
351
+ ProtocolType.Sealevel,
352
+ ProtocolType.Cosmos,
353
+ ProtocolType.CosmosNative,
354
+ ProtocolType.Starknet,
355
+ ProtocolType.Radix,
356
+ ProtocolType.Aleo,
357
+ ProtocolType.Tron,
358
+ ]) {
359
+ const result = ValidatorAgentConfigSchema.safeParse({
360
+ ...config,
361
+ lightweight: true,
362
+ websocketUrl: 'wss://scraper.example/events',
363
+ chains: {
364
+ test: {
365
+ ...config.chains.test,
366
+ protocol,
367
+ ...(protocol === ProtocolType.Cosmos ||
368
+ protocol === ProtocolType.CosmosNative
369
+ ? {
370
+ signer: {
371
+ type: AgentSignerKeyType.Cosmos,
372
+ prefix: 'test',
373
+ key: `0x${'11'.repeat(32)}`,
374
+ },
375
+ canonicalAsset: 'utest',
376
+ gasPrice: { denom: 'utest', amount: '0.025' },
377
+ contractAddressBytes: 32,
378
+ }
379
+ : {}),
380
+ },
381
+ },
382
+ });
383
+ expect(result.success, `${protocol}: ${result.error?.message}`).to.be
384
+ .true;
385
+ }
386
+ });
387
+ it('rejects conflicting aliases and defaults to classic behavior', () => {
388
+ expect(ValidatorAgentConfigSchema.safeParse(config).success).to.be.true;
389
+ expect(ValidatorAgentConfigSchema.safeParse({
390
+ ...config,
391
+ lightweight: true,
392
+ leightweigt: false,
393
+ websocketUrl: 'wss://scraper.example/events',
394
+ }).success).to.be.false;
395
+ });
396
+ });
145
397
  //# sourceMappingURL=agentConfig.test.js.map