@hyperlane-xyz/sdk 14.3.0 → 15.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 (69) hide show
  1. package/dist/consts/multisigIsm.d.ts.map +1 -1
  2. package/dist/consts/multisigIsm.js +20 -6
  3. package/dist/consts/multisigIsm.js.map +1 -1
  4. package/dist/core/HyperlaneRelayer.d.ts +8 -8
  5. package/dist/core/types.d.ts +132 -132
  6. package/dist/fork/types.d.ts +15 -15
  7. package/dist/hook/types.d.ts +1 -1
  8. package/dist/hook/types.d.ts.map +1 -1
  9. package/dist/hook/types.js +1 -1
  10. package/dist/hook/types.js.map +1 -1
  11. package/dist/ica/types.d.ts +18 -18
  12. package/dist/index.d.ts +28 -32
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +23 -27
  15. package/dist/index.js.map +1 -1
  16. package/dist/ism/types.d.ts +10 -10
  17. package/dist/metadata/agentConfig.d.ts +4 -4
  18. package/dist/middleware/account/InterchainAccount.d.ts +4 -4
  19. package/dist/middleware/account/InterchainAccount.js +3 -2
  20. package/dist/middleware/account/InterchainAccount.js.map +1 -1
  21. package/dist/middleware/account/types.d.ts +6 -6
  22. package/dist/providers/MultiProvider.d.ts +2 -2
  23. package/dist/providers/MultiProvider.d.ts.map +1 -1
  24. package/dist/providers/MultiProvider.js +4 -2
  25. package/dist/providers/MultiProvider.js.map +1 -1
  26. package/dist/providers/transactions/submitter/TxSubmitterInterface.d.ts +2 -2
  27. package/dist/providers/transactions/submitter/TxSubmitterInterface.d.ts.map +1 -1
  28. package/dist/providers/transactions/submitter/builder/types.d.ts +22 -11
  29. package/dist/providers/transactions/submitter/builder/types.d.ts.map +1 -1
  30. package/dist/providers/transactions/submitter/builder/types.js +21 -13
  31. package/dist/providers/transactions/submitter/builder/types.js.map +1 -1
  32. package/dist/providers/transactions/submitter/ethersV5/EV5ImpersonatedAccountTxSubmitter.d.ts.map +1 -1
  33. package/dist/providers/transactions/submitter/ethersV5/EV5ImpersonatedAccountTxSubmitter.js +5 -2
  34. package/dist/providers/transactions/submitter/ethersV5/EV5ImpersonatedAccountTxSubmitter.js.map +1 -1
  35. package/dist/providers/transactions/submitter/submitterBuilderGetter.d.ts +17 -2
  36. package/dist/providers/transactions/submitter/submitterBuilderGetter.d.ts.map +1 -1
  37. package/dist/providers/transactions/submitter/submitterBuilderGetter.js +48 -24
  38. package/dist/providers/transactions/submitter/submitterBuilderGetter.js.map +1 -1
  39. package/dist/providers/transactions/submitter/types.d.ts +4 -4
  40. package/dist/providers/transactions/types.d.ts +2 -2
  41. package/dist/router/types.d.ts +24 -24
  42. package/dist/token/types.d.ts +103 -103
  43. package/dist/types.d.ts +3 -3
  44. package/dist/utils/cosmos.d.ts +2 -2
  45. package/dist/utils/fork.d.ts +7 -3
  46. package/dist/utils/fork.d.ts.map +1 -1
  47. package/dist/utils/fork.js +7 -7
  48. package/dist/utils/fork.js.map +1 -1
  49. package/dist/warp/WarpCore.d.ts.map +1 -1
  50. package/dist/warp/WarpCore.js +7 -3
  51. package/dist/warp/WarpCore.js.map +1 -1
  52. package/dist/warp/types.d.ts +14 -14
  53. package/package.json +5 -5
  54. package/dist/middleware/liquidity-layer/LiquidityLayerApp.d.ts +0 -35
  55. package/dist/middleware/liquidity-layer/LiquidityLayerApp.d.ts.map +0 -1
  56. package/dist/middleware/liquidity-layer/LiquidityLayerApp.js +0 -171
  57. package/dist/middleware/liquidity-layer/LiquidityLayerApp.js.map +0 -1
  58. package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.d.ts +0 -49
  59. package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.d.ts.map +0 -1
  60. package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.js +0 -115
  61. package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.js.map +0 -1
  62. package/dist/middleware/liquidity-layer/contracts.d.ts +0 -10
  63. package/dist/middleware/liquidity-layer/contracts.d.ts.map +0 -1
  64. package/dist/middleware/liquidity-layer/contracts.js +0 -9
  65. package/dist/middleware/liquidity-layer/contracts.js.map +0 -1
  66. package/dist/middleware/liquidity-layer/liquidity-layer.hardhat-test.d.ts +0 -2
  67. package/dist/middleware/liquidity-layer/liquidity-layer.hardhat-test.d.ts.map +0 -1
  68. package/dist/middleware/liquidity-layer/liquidity-layer.hardhat-test.js +0 -112
  69. package/dist/middleware/liquidity-layer/liquidity-layer.hardhat-test.js.map +0 -1
@@ -1,4 +1,5 @@
1
1
  import { z } from 'zod';
2
+ import { ChainMap } from '../../../../types.js';
2
3
  import { TxSubmitterType } from '../TxSubmitterTypes.js';
3
4
  export declare const SubmissionStrategySchema: z.ZodObject<{
4
5
  submitter: z.ZodUnion<[z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
@@ -126,8 +127,8 @@ export declare const SubmissionStrategySchema: z.ZodObject<{
126
127
  }>]>;
127
128
  }, "strip", z.ZodTypeAny, {
128
129
  type: TxSubmitterType.INTERCHAIN_ACCOUNT;
129
- owner: string;
130
130
  chain: string;
131
+ owner: string;
131
132
  destinationChain: string;
132
133
  internalSubmitter: {
133
134
  type: TxSubmitterType.JSON_RPC;
@@ -154,8 +155,8 @@ export declare const SubmissionStrategySchema: z.ZodObject<{
154
155
  interchainSecurityModule?: string | undefined;
155
156
  }, {
156
157
  type: TxSubmitterType.INTERCHAIN_ACCOUNT;
157
- owner: string;
158
158
  chain: string;
159
+ owner: string;
159
160
  destinationChain: string;
160
161
  internalSubmitter: {
161
162
  type: TxSubmitterType.JSON_RPC;
@@ -203,8 +204,8 @@ export declare const SubmissionStrategySchema: z.ZodObject<{
203
204
  safeAddress: string;
204
205
  } | {
205
206
  type: TxSubmitterType.INTERCHAIN_ACCOUNT;
206
- owner: string;
207
207
  chain: string;
208
+ owner: string;
208
209
  destinationChain: string;
209
210
  internalSubmitter: {
210
211
  type: TxSubmitterType.JSON_RPC;
@@ -252,8 +253,8 @@ export declare const SubmissionStrategySchema: z.ZodObject<{
252
253
  version?: string | undefined;
253
254
  } | {
254
255
  type: TxSubmitterType.INTERCHAIN_ACCOUNT;
255
- owner: string;
256
256
  chain: string;
257
+ owner: string;
257
258
  destinationChain: string;
258
259
  internalSubmitter: {
259
260
  type: TxSubmitterType.JSON_RPC;
@@ -281,6 +282,16 @@ export declare const SubmissionStrategySchema: z.ZodObject<{
281
282
  };
282
283
  }>;
283
284
  export type SubmissionStrategy = z.infer<typeof SubmissionStrategySchema>;
285
+ export declare function preprocessChainSubmissionStrategy<T extends {
286
+ submitter: {
287
+ type: string;
288
+ };
289
+ }>(value: unknown): ChainMap<T>;
290
+ export declare function refineChainSubmissionStrategy<T extends {
291
+ submitter: {
292
+ type: string;
293
+ };
294
+ }>(value: Record<string, T>, ctx: z.RefinementCtx): void;
284
295
  export declare const ChainSubmissionStrategySchema: z.ZodEffects<z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodObject<{
285
296
  submitter: z.ZodUnion<[z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
286
297
  chain: z.ZodString;
@@ -407,8 +418,8 @@ export declare const ChainSubmissionStrategySchema: z.ZodEffects<z.ZodEffects<z.
407
418
  }>]>;
408
419
  }, "strip", z.ZodTypeAny, {
409
420
  type: TxSubmitterType.INTERCHAIN_ACCOUNT;
410
- owner: string;
411
421
  chain: string;
422
+ owner: string;
412
423
  destinationChain: string;
413
424
  internalSubmitter: {
414
425
  type: TxSubmitterType.JSON_RPC;
@@ -435,8 +446,8 @@ export declare const ChainSubmissionStrategySchema: z.ZodEffects<z.ZodEffects<z.
435
446
  interchainSecurityModule?: string | undefined;
436
447
  }, {
437
448
  type: TxSubmitterType.INTERCHAIN_ACCOUNT;
438
- owner: string;
439
449
  chain: string;
450
+ owner: string;
440
451
  destinationChain: string;
441
452
  internalSubmitter: {
442
453
  type: TxSubmitterType.JSON_RPC;
@@ -484,8 +495,8 @@ export declare const ChainSubmissionStrategySchema: z.ZodEffects<z.ZodEffects<z.
484
495
  safeAddress: string;
485
496
  } | {
486
497
  type: TxSubmitterType.INTERCHAIN_ACCOUNT;
487
- owner: string;
488
498
  chain: string;
499
+ owner: string;
489
500
  destinationChain: string;
490
501
  internalSubmitter: {
491
502
  type: TxSubmitterType.JSON_RPC;
@@ -533,8 +544,8 @@ export declare const ChainSubmissionStrategySchema: z.ZodEffects<z.ZodEffects<z.
533
544
  version?: string | undefined;
534
545
  } | {
535
546
  type: TxSubmitterType.INTERCHAIN_ACCOUNT;
536
- owner: string;
537
547
  chain: string;
548
+ owner: string;
538
549
  destinationChain: string;
539
550
  internalSubmitter: {
540
551
  type: TxSubmitterType.JSON_RPC;
@@ -582,8 +593,8 @@ export declare const ChainSubmissionStrategySchema: z.ZodEffects<z.ZodEffects<z.
582
593
  safeAddress: string;
583
594
  } | {
584
595
  type: TxSubmitterType.INTERCHAIN_ACCOUNT;
585
- owner: string;
586
596
  chain: string;
597
+ owner: string;
587
598
  destinationChain: string;
588
599
  internalSubmitter: {
589
600
  type: TxSubmitterType.JSON_RPC;
@@ -631,8 +642,8 @@ export declare const ChainSubmissionStrategySchema: z.ZodEffects<z.ZodEffects<z.
631
642
  version?: string | undefined;
632
643
  } | {
633
644
  type: TxSubmitterType.INTERCHAIN_ACCOUNT;
634
- owner: string;
635
645
  chain: string;
646
+ owner: string;
636
647
  destinationChain: string;
637
648
  internalSubmitter: {
638
649
  type: TxSubmitterType.JSON_RPC;
@@ -680,8 +691,8 @@ export declare const ChainSubmissionStrategySchema: z.ZodEffects<z.ZodEffects<z.
680
691
  safeAddress: string;
681
692
  } | {
682
693
  type: TxSubmitterType.INTERCHAIN_ACCOUNT;
683
- owner: string;
684
694
  chain: string;
695
+ owner: string;
685
696
  destinationChain: string;
686
697
  internalSubmitter: {
687
698
  type: TxSubmitterType.JSON_RPC;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/providers/transactions/submitter/builder/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzD,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI1B,CAAC;AAEZ,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAuEzC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAC3C,OAAO,6BAA6B,CACrC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/providers/transactions/submitter/builder/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzD,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI1B,CAAC;AAEZ,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,wBAAgB,iCAAiC,CAC/C,CAAC,SAAS;IAAE,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,EACzC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAoD7B;AACD,wBAAgB,6BAA6B,CAC3C,CAAC,SAAS;IAAE,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,EACzC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,aAAa,QAmB/C;AAED,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAKzC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAC3C,OAAO,6BAA6B,CACrC,CAAC"}
@@ -8,35 +8,38 @@ export const SubmissionStrategySchema = z
8
8
  submitter: SubmitterMetadataSchema,
9
9
  })
10
10
  .strict();
11
- export const ChainSubmissionStrategySchema = z.preprocess(
12
- // Add the chain property to the internal submitter config before validation
13
- // to avoid having to set the field manually when writing the config
14
- (value) => {
11
+ export function preprocessChainSubmissionStrategy(value) {
12
+ // Add the chain property to the internal submitter config before validation
13
+ // to avoid having to set the field manually when writing the config
15
14
  const castedValued = value;
16
15
  const parsedValue = objMap(castedValued, (chainName, strategy) => {
17
16
  if (strategy.submitter.type !== TxSubmitterType.INTERCHAIN_ACCOUNT) {
18
17
  return strategy;
19
18
  }
19
+ // The strategy.submitter is cast to the specific ICA type to allow for
20
+ // access to ICA-specific properties.
21
+ const submitter = strategy.submitter;
20
22
  // Setting the default internal submitter config for interchain accounts here
21
23
  // instead of using zod's default() modifier because we require the chain property to be set
22
24
  const { internalSubmitter = {
23
25
  type: TxSubmitterType.JSON_RPC,
24
- chain: strategy.submitter.chain,
25
- }, destinationChain, } = strategy.submitter;
26
+ chain: submitter.chain,
27
+ }, destinationChain, } = submitter;
26
28
  const formattedInternalSubmitter = {
27
29
  ...internalSubmitter,
28
- chain: strategy.submitter.chain,
30
+ chain: submitter.chain,
29
31
  };
32
+ let owner = submitter.owner;
30
33
  // When the internal submitter of the interchain account is a Multisig, the owner address and the multisig address need to match
31
34
  if (formattedInternalSubmitter.type === TxSubmitterType.GNOSIS_SAFE ||
32
35
  formattedInternalSubmitter.type === TxSubmitterType.GNOSIS_TX_BUILDER) {
33
- strategy.submitter.owner =
34
- strategy.submitter.owner ?? formattedInternalSubmitter.safeAddress;
36
+ owner = submitter.owner ?? formattedInternalSubmitter.safeAddress;
35
37
  }
36
38
  return {
37
39
  ...strategy,
38
40
  submitter: {
39
- ...strategy.submitter,
41
+ ...submitter,
42
+ owner,
40
43
  // Setting the destinationChain here so that it can be omitted in the input config
41
44
  // as its value should be the same as the key value in the mapping
42
45
  destinationChain: destinationChain ?? chainName,
@@ -45,12 +48,14 @@ export const ChainSubmissionStrategySchema = z.preprocess(
45
48
  };
46
49
  });
47
50
  return parsedValue;
48
- }, z.record(ZChainName, SubmissionStrategySchema).superRefine((value, ctx) => {
51
+ }
52
+ export function refineChainSubmissionStrategy(value, ctx) {
49
53
  Object.entries(value).forEach(([chain, config]) => {
50
54
  if (config.submitter.type !== TxSubmitterType.INTERCHAIN_ACCOUNT) {
51
55
  return;
52
56
  }
53
- const { owner, internalSubmitter } = config.submitter;
57
+ const submitter = config.submitter;
58
+ const { owner, internalSubmitter } = submitter;
54
59
  if ((internalSubmitter.type === TxSubmitterType.GNOSIS_SAFE ||
55
60
  internalSubmitter.type === TxSubmitterType.GNOSIS_TX_BUILDER) &&
56
61
  !eqAddress(owner, internalSubmitter.safeAddress)) {
@@ -60,5 +65,8 @@ export const ChainSubmissionStrategySchema = z.preprocess(
60
65
  });
61
66
  }
62
67
  });
63
- }));
68
+ }
69
+ export const ChainSubmissionStrategySchema = z.preprocess(preprocessChainSubmissionStrategy, z
70
+ .record(ZChainName, SubmissionStrategySchema)
71
+ .superRefine(refineChainSubmissionStrategy));
64
72
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/providers/transactions/submitter/builder/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/providers/transactions/submitter/builder/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"EV5ImpersonatedAccountTxSubmitter.d.ts","sourceRoot":"","sources":["../../../../../src/providers/transactions/submitter/ethersV5/EV5ImpersonatedAccountTxSubmitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAQ9B,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,sCAAsC,EAAE,MAAM,YAAY,CAAC;AAEpE,qBAAa,iCAAkC,SAAQ,qBAAqB;aAUxD,KAAK,EAAE,sCAAsC;IAT/D,SAAgB,eAAe,EAAE,eAAe,CACT;IAEvC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAE9B;gBAGD,aAAa,EAAE,aAAa,EACZ,KAAK,EAAE,sCAAsC;IAKlD,MAAM,CACjB,GAAG,GAAG,EAAE,uBAAuB,EAAE,GAChC,OAAO,CAAC,kBAAkB,EAAE,CAAC;CASjC"}
1
+ {"version":3,"file":"EV5ImpersonatedAccountTxSubmitter.d.ts","sourceRoot":"","sources":["../../../../../src/providers/transactions/submitter/ethersV5/EV5ImpersonatedAccountTxSubmitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAQ9B,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,sCAAsC,EAAE,MAAM,YAAY,CAAC;AAEpE,qBAAa,iCAAkC,SAAQ,qBAAqB;aAUxD,KAAK,EAAE,sCAAsC;IAT/D,SAAgB,eAAe,EAAE,eAAe,CACT;IAEvC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAE9B;gBAGD,aAAa,EAAE,aAAa,EACZ,KAAK,EAAE,sCAAsC;IAKlD,MAAM,CACjB,GAAG,GAAG,EAAE,uBAAuB,EAAE,GAChC,OAAO,CAAC,kBAAkB,EAAE,CAAC;CAajC"}
@@ -13,10 +13,13 @@ export class EV5ImpersonatedAccountTxSubmitter extends EV5JsonRpcTxSubmitter {
13
13
  this.props = props;
14
14
  }
15
15
  async submit(...txs) {
16
- const impersonatedAccount = await impersonateAccount(this.props.userAddress);
16
+ // It is assumed that this Submitter will be used by setting the registry url to the anvil endpoint
17
+ const anvilEndpoint = this.multiProvider.getChainMetadata(this.props.chain)
18
+ ?.rpcUrls[0].http;
19
+ const impersonatedAccount = await impersonateAccount(this.props.userAddress, anvilEndpoint);
17
20
  this.multiProvider.setSharedSigner(impersonatedAccount);
18
21
  const transactionReceipts = await super.submit(...txs);
19
- await stopImpersonatingAccount(this.props.userAddress);
22
+ await stopImpersonatingAccount(this.props.userAddress, anvilEndpoint);
20
23
  return transactionReceipts;
21
24
  }
22
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EV5ImpersonatedAccountTxSubmitter.js","sourceRoot":"","sources":["../../../../../src/providers/transactions/submitter/ethersV5/EV5ImpersonatedAccountTxSubmitter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EACL,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGnE,MAAM,OAAO,iCAAkC,SAAQ,qBAAqB;IAUxD;IATF,eAAe,GAC7B,eAAe,CAAC,oBAAoB,CAAC;IAEpB,MAAM,GAAW,UAAU,CAAC,KAAK,CAAC;QACnD,MAAM,EAAE,gCAAgC;KACzC,CAAC,CAAC;IAEH,YACE,aAA4B,EACZ,KAA6C;QAE7D,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QAFZ,UAAK,GAAL,KAAK,CAAwC;IAG/D,CAAC;IAEM,KAAK,CAAC,MAAM,CACjB,GAAG,GAA8B;QAEjC,MAAM,mBAAmB,GAAG,MAAM,kBAAkB,CAClD,IAAI,CAAC,KAAK,CAAC,WAAW,CACvB,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;QACxD,MAAM,mBAAmB,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;QACvD,MAAM,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACvD,OAAO,mBAAmB,CAAC;IAC7B,CAAC;CACF"}
1
+ {"version":3,"file":"EV5ImpersonatedAccountTxSubmitter.js","sourceRoot":"","sources":["../../../../../src/providers/transactions/submitter/ethersV5/EV5ImpersonatedAccountTxSubmitter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EACL,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGnE,MAAM,OAAO,iCAAkC,SAAQ,qBAAqB;IAUxD;IATF,eAAe,GAC7B,eAAe,CAAC,oBAAoB,CAAC;IAEpB,MAAM,GAAW,UAAU,CAAC,KAAK,CAAC;QACnD,MAAM,EAAE,gCAAgC;KACzC,CAAC,CAAC;IAEH,YACE,aAA4B,EACZ,KAA6C;QAE7D,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QAFZ,UAAK,GAAL,KAAK,CAAwC;IAG/D,CAAC;IAEM,KAAK,CAAC,MAAM,CACjB,GAAG,GAA8B;QAEjC,mGAAmG;QACnG,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YACzE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpB,MAAM,mBAAmB,GAAG,MAAM,kBAAkB,CAClD,IAAI,CAAC,KAAK,CAAC,WAAW,EACtB,aAAa,CACd,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;QACxD,MAAM,mBAAmB,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;QACvD,MAAM,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QACtE,OAAO,mBAAmB,CAAC;IAC7B,CAAC;CACF"}
@@ -9,7 +9,22 @@ export type SubmitterBuilderSettings = {
9
9
  submissionStrategy: SubmissionStrategy;
10
10
  multiProvider: MultiProvider;
11
11
  registry: IRegistry;
12
+ additionalSubmitterFactories?: Record<string, SubmitterFactory>;
12
13
  };
13
- export declare function getSubmitterBuilder<TProtocol extends ProtocolType>({ submissionStrategy, multiProvider, registry, }: SubmitterBuilderSettings): Promise<TxSubmitterBuilder<TProtocol>>;
14
- export declare function getSubmitter<TProtocol extends ProtocolType>(multiProvider: MultiProvider, submitterMetadata: SubmitterMetadata, registry: IRegistry): Promise<TxSubmitterInterface<TProtocol>>;
14
+ export declare function getSubmitterBuilder<TProtocol extends ProtocolType>({ submissionStrategy, multiProvider, registry, additionalSubmitterFactories, }: SubmitterBuilderSettings): Promise<TxSubmitterBuilder<TProtocol>>;
15
+ export type SubmitterFactory<TProtocol extends ProtocolType = any> = (multiProvider: MultiProvider, metadata: SubmitterMetadata, registry: IRegistry) => Promise<TxSubmitterInterface<TProtocol>> | TxSubmitterInterface<TProtocol>;
16
+ /**
17
+ * Retrieves a transaction submitter instance based on the provided metadata.
18
+ * This function acts as a factory, using a registry of submitter builders
19
+ * to construct the appropriate submitter for the given protocol and submission strategy.
20
+ * It allows for extending the default registry with custom submitter types.
21
+ *
22
+ * @param multiProvider - The MultiProvider instance
23
+ * @param submitterMetadata - The metadata defining the type and configuration of the submitter.
24
+ * @param registry - The IRegistry instance for looking up chain-specific details.
25
+ * @param additionalSubmitterFactories optional extension to extend the default registry. Can override if specifying the the same key.
26
+ * @returns A promise that resolves to an instance of a TxSubmitterInterface.
27
+ * @throws If no submitter factory is registered for the type specified in the metadata.
28
+ */
29
+ export declare function getSubmitter<TProtocol extends ProtocolType>(multiProvider: MultiProvider, submitterMetadata: SubmitterMetadata, registry: IRegistry, additionalSubmitterFactories?: Record<string, SubmitterFactory>): Promise<TxSubmitterInterface<TProtocol>>;
15
30
  //# sourceMappingURL=submitterBuilderGetter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"submitterBuilderGetter.d.ts","sourceRoot":"","sources":["../../../../src/providers/transactions/submitter/submitterBuilderGetter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAKxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,MAAM,wBAAwB,GAAG;IACrC,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,aAAa,EAAE,aAAa,CAAC;IAC7B,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF,wBAAsB,mBAAmB,CAAC,SAAS,SAAS,YAAY,EAAE,EACxE,kBAAkB,EAClB,aAAa,EACb,QAAQ,GACT,EAAE,wBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAQnE;AAED,wBAAsB,YAAY,CAAC,SAAS,SAAS,YAAY,EAC/D,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,iBAAiB,EACpC,QAAQ,EAAE,SAAS,GAClB,OAAO,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CA2B1C"}
1
+ {"version":3,"file":"submitterBuilderGetter.d.ts","sourceRoot":"","sources":["../../../../src/providers/transactions/submitter/submitterBuilderGetter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAU,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAKxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,MAAM,wBAAwB,GAAG;IACrC,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,aAAa,EAAE,aAAa,CAAC;IAC7B,QAAQ,EAAE,SAAS,CAAC;IACpB,4BAA4B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CACjE,CAAC;AAEF,wBAAsB,mBAAmB,CAAC,SAAS,SAAS,YAAY,EAAE,EACxE,kBAAkB,EAClB,aAAa,EACb,QAAQ,EACR,4BAA4B,GAC7B,EAAE,wBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CASnE;AAED,MAAM,MAAM,gBAAgB,CAAC,SAAS,SAAS,YAAY,GAAG,GAAG,IAAI,CACnE,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,iBAAiB,EAC3B,QAAQ,EAAE,SAAS,KAChB,OAAO,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;AAyChF;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,CAAC,SAAS,SAAS,YAAY,EAC/D,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,iBAAiB,EACpC,QAAQ,EAAE,SAAS,EACnB,4BAA4B,GAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAM,GAClE,OAAO,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAY1C"}
@@ -1,3 +1,4 @@
1
+ import { assert } from '@hyperlane-xyz/utils';
1
2
  import { EvmIcaTxSubmitter } from './IcaTxSubmitter.js';
2
3
  import { TxSubmitterType } from './TxSubmitterTypes.js';
3
4
  import { TxSubmitterBuilder } from './builder/TxSubmitterBuilder.js';
@@ -5,32 +6,55 @@ import { EV5GnosisSafeTxBuilder } from './ethersV5/EV5GnosisSafeTxBuilder.js';
5
6
  import { EV5GnosisSafeTxSubmitter } from './ethersV5/EV5GnosisSafeTxSubmitter.js';
6
7
  import { EV5ImpersonatedAccountTxSubmitter } from './ethersV5/EV5ImpersonatedAccountTxSubmitter.js';
7
8
  import { EV5JsonRpcTxSubmitter } from './ethersV5/EV5JsonRpcTxSubmitter.js';
8
- export async function getSubmitterBuilder({ submissionStrategy, multiProvider, registry, }) {
9
- const submitter = await getSubmitter(multiProvider, submissionStrategy.submitter, registry);
9
+ export async function getSubmitterBuilder({ submissionStrategy, multiProvider, registry, additionalSubmitterFactories, }) {
10
+ const submitter = await getSubmitter(multiProvider, submissionStrategy.submitter, registry, additionalSubmitterFactories);
10
11
  return new TxSubmitterBuilder(submitter);
11
12
  }
12
- export async function getSubmitter(multiProvider, submitterMetadata, registry) {
13
- switch (submitterMetadata.type) {
14
- case TxSubmitterType.JSON_RPC:
15
- return new EV5JsonRpcTxSubmitter(multiProvider, {
16
- ...submitterMetadata,
17
- });
18
- case TxSubmitterType.IMPERSONATED_ACCOUNT:
19
- return new EV5ImpersonatedAccountTxSubmitter(multiProvider, {
20
- ...submitterMetadata,
21
- });
22
- case TxSubmitterType.GNOSIS_SAFE:
23
- return EV5GnosisSafeTxSubmitter.create(multiProvider, {
24
- ...submitterMetadata,
25
- });
26
- case TxSubmitterType.GNOSIS_TX_BUILDER:
27
- return EV5GnosisSafeTxBuilder.create(multiProvider, {
28
- ...submitterMetadata,
29
- });
30
- case TxSubmitterType.INTERCHAIN_ACCOUNT:
31
- return EvmIcaTxSubmitter.fromConfig(submitterMetadata, multiProvider, registry);
32
- default:
33
- throw new Error(`Invalid TxSubmitterType.`);
13
+ const defaultSubmitterFactories = {
14
+ [TxSubmitterType.JSON_RPC]: (multiProvider, metadata) => {
15
+ // Used to type narrow metadata
16
+ assert(metadata.type === TxSubmitterType.JSON_RPC, `Invalid metadata type: ${metadata.type}, expected ${TxSubmitterType.JSON_RPC}`);
17
+ return new EV5JsonRpcTxSubmitter(multiProvider, metadata);
18
+ },
19
+ [TxSubmitterType.IMPERSONATED_ACCOUNT]: (multiProvider, metadata) => {
20
+ assert(metadata.type === TxSubmitterType.IMPERSONATED_ACCOUNT, `Invalid metadata type: ${metadata.type}, expected ${TxSubmitterType.IMPERSONATED_ACCOUNT}`);
21
+ return new EV5ImpersonatedAccountTxSubmitter(multiProvider, metadata);
22
+ },
23
+ [TxSubmitterType.GNOSIS_SAFE]: (multiProvider, metadata) => {
24
+ assert(metadata.type === TxSubmitterType.GNOSIS_SAFE, `Invalid metadata type: ${metadata.type}, expected ${TxSubmitterType.GNOSIS_SAFE}`);
25
+ return EV5GnosisSafeTxSubmitter.create(multiProvider, metadata);
26
+ },
27
+ [TxSubmitterType.GNOSIS_TX_BUILDER]: (multiProvider, metadata) => {
28
+ assert(metadata.type === TxSubmitterType.GNOSIS_TX_BUILDER, `Invalid metadata type: ${metadata.type}, expected ${TxSubmitterType.GNOSIS_TX_BUILDER}`);
29
+ return EV5GnosisSafeTxBuilder.create(multiProvider, metadata);
30
+ },
31
+ [TxSubmitterType.INTERCHAIN_ACCOUNT]: (multiProvider, metadata, registry) => {
32
+ assert(metadata.type === TxSubmitterType.INTERCHAIN_ACCOUNT, `Invalid metadata type: ${metadata.type}, expected ${TxSubmitterType.INTERCHAIN_ACCOUNT}`);
33
+ return EvmIcaTxSubmitter.fromConfig(metadata, multiProvider, registry);
34
+ },
35
+ };
36
+ /**
37
+ * Retrieves a transaction submitter instance based on the provided metadata.
38
+ * This function acts as a factory, using a registry of submitter builders
39
+ * to construct the appropriate submitter for the given protocol and submission strategy.
40
+ * It allows for extending the default registry with custom submitter types.
41
+ *
42
+ * @param multiProvider - The MultiProvider instance
43
+ * @param submitterMetadata - The metadata defining the type and configuration of the submitter.
44
+ * @param registry - The IRegistry instance for looking up chain-specific details.
45
+ * @param additionalSubmitterFactories optional extension to extend the default registry. Can override if specifying the the same key.
46
+ * @returns A promise that resolves to an instance of a TxSubmitterInterface.
47
+ * @throws If no submitter factory is registered for the type specified in the metadata.
48
+ */
49
+ export async function getSubmitter(multiProvider, submitterMetadata, registry, additionalSubmitterFactories = {}) {
50
+ const mergedSubmitterRegistry = {
51
+ ...defaultSubmitterFactories,
52
+ ...additionalSubmitterFactories,
53
+ };
54
+ const factory = mergedSubmitterRegistry[submitterMetadata.type];
55
+ if (!factory) {
56
+ throw new Error(`No submitter factory registered for type ${submitterMetadata.type}`);
34
57
  }
58
+ return factory(multiProvider, submitterMetadata, registry);
35
59
  }
36
60
  //# sourceMappingURL=submitterBuilderGetter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"submitterBuilderGetter.js","sourceRoot":"","sources":["../../../../src/providers/transactions/submitter/submitterBuilderGetter.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,iCAAiC,EAAE,MAAM,iDAAiD,CAAC;AACpG,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAS5E,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAiC,EACxE,kBAAkB,EAClB,aAAa,EACb,QAAQ,GACiB;IACzB,MAAM,SAAS,GAAG,MAAM,YAAY,CAClC,aAAa,EACb,kBAAkB,CAAC,SAAS,EAC5B,QAAQ,CACT,CAAC;IAEF,OAAO,IAAI,kBAAkB,CAAY,SAAS,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,aAA4B,EAC5B,iBAAoC,EACpC,QAAmB;IAEnB,QAAQ,iBAAiB,CAAC,IAAI,EAAE,CAAC;QAC/B,KAAK,eAAe,CAAC,QAAQ;YAC3B,OAAO,IAAI,qBAAqB,CAAC,aAAa,EAAE;gBAC9C,GAAG,iBAAiB;aACrB,CAAC,CAAC;QACL,KAAK,eAAe,CAAC,oBAAoB;YACvC,OAAO,IAAI,iCAAiC,CAAC,aAAa,EAAE;gBAC1D,GAAG,iBAAiB;aACrB,CAAC,CAAC;QACL,KAAK,eAAe,CAAC,WAAW;YAC9B,OAAO,wBAAwB,CAAC,MAAM,CAAC,aAAa,EAAE;gBACpD,GAAG,iBAAiB;aACrB,CAAC,CAAC;QACL,KAAK,eAAe,CAAC,iBAAiB;YACpC,OAAO,sBAAsB,CAAC,MAAM,CAAC,aAAa,EAAE;gBAClD,GAAG,iBAAiB;aACrB,CAAC,CAAC;QACL,KAAK,eAAe,CAAC,kBAAkB;YACrC,OAAO,iBAAiB,CAAC,UAAU,CACjC,iBAAiB,EACjB,aAAa,EACb,QAAQ,CACT,CAAC;QACJ;YACE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAChD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"submitterBuilderGetter.js","sourceRoot":"","sources":["../../../../src/providers/transactions/submitter/submitterBuilderGetter.ts"],"names":[],"mappings":"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"}
@@ -68,8 +68,8 @@ export declare const EvmIcaTxSubmitterPropsSchema: z.ZodObject<{
68
68
  }>]>;
69
69
  }, "strip", z.ZodTypeAny, {
70
70
  type: TxSubmitterType.INTERCHAIN_ACCOUNT;
71
- owner: string;
72
71
  chain: string;
72
+ owner: string;
73
73
  destinationChain: string;
74
74
  internalSubmitter: {
75
75
  type: TxSubmitterType.JSON_RPC;
@@ -96,8 +96,8 @@ export declare const EvmIcaTxSubmitterPropsSchema: z.ZodObject<{
96
96
  interchainSecurityModule?: string | undefined;
97
97
  }, {
98
98
  type: TxSubmitterType.INTERCHAIN_ACCOUNT;
99
- owner: string;
100
99
  chain: string;
100
+ owner: string;
101
101
  destinationChain: string;
102
102
  internalSubmitter: {
103
103
  type: TxSubmitterType.JSON_RPC;
@@ -249,8 +249,8 @@ export declare const SubmitterMetadataSchema: z.ZodUnion<[z.ZodDiscriminatedUnio
249
249
  }>]>;
250
250
  }, "strip", z.ZodTypeAny, {
251
251
  type: TxSubmitterType.INTERCHAIN_ACCOUNT;
252
- owner: string;
253
252
  chain: string;
253
+ owner: string;
254
254
  destinationChain: string;
255
255
  internalSubmitter: {
256
256
  type: TxSubmitterType.JSON_RPC;
@@ -277,8 +277,8 @@ export declare const SubmitterMetadataSchema: z.ZodUnion<[z.ZodDiscriminatedUnio
277
277
  interchainSecurityModule?: string | undefined;
278
278
  }, {
279
279
  type: TxSubmitterType.INTERCHAIN_ACCOUNT;
280
- owner: string;
281
280
  chain: string;
281
+ owner: string;
282
282
  destinationChain: string;
283
283
  internalSubmitter: {
284
284
  type: TxSubmitterType.JSON_RPC;
@@ -5,12 +5,12 @@ export declare const CallDataSchema: z.ZodObject<{
5
5
  data: z.ZodString;
6
6
  value: z.ZodOptional<z.ZodString>;
7
7
  }, "strip", z.ZodTypeAny, {
8
- data: string;
9
8
  to: string;
9
+ data: string;
10
10
  value?: string | undefined;
11
11
  }, {
12
- data: string;
13
12
  to: string;
13
+ data: string;
14
14
  value?: string | undefined;
15
15
  }>;
16
16
  export type CallData = z.infer<typeof CallDataSchema>;