@hyperlane-xyz/sdk 13.3.0 → 14.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 (200) hide show
  1. package/dist/consts/multisigIsm.d.ts.map +1 -1
  2. package/dist/consts/multisigIsm.js +28 -93
  3. package/dist/consts/multisigIsm.js.map +1 -1
  4. package/dist/core/CosmosNativeCoreReader.d.ts +3 -3
  5. package/dist/core/CosmosNativeCoreReader.d.ts.map +1 -1
  6. package/dist/core/CosmosNativeCoreReader.js +5 -5
  7. package/dist/core/CosmosNativeCoreReader.js.map +1 -1
  8. package/dist/core/HyperlaneRelayer.d.ts +20 -0
  9. package/dist/core/HyperlaneRelayer.d.ts.map +1 -1
  10. package/dist/core/types.d.ts +152 -2
  11. package/dist/core/types.d.ts.map +1 -1
  12. package/dist/deploy/HyperlaneProxyFactoryDeployer.d.ts.map +1 -1
  13. package/dist/deploy/HyperlaneProxyFactoryDeployer.js +10 -4
  14. package/dist/deploy/HyperlaneProxyFactoryDeployer.js.map +1 -1
  15. package/dist/deploy/contracts.js +1 -1
  16. package/dist/deploy/contracts.js.map +1 -1
  17. package/dist/deploy/verify/utils.d.ts +1 -0
  18. package/dist/deploy/verify/utils.d.ts.map +1 -1
  19. package/dist/deploy/verify/utils.js +8 -1
  20. package/dist/deploy/verify/utils.js.map +1 -1
  21. package/dist/fork/types.d.ts +2086 -0
  22. package/dist/fork/types.d.ts.map +1 -0
  23. package/dist/fork/types.js +142 -0
  24. package/dist/fork/types.js.map +1 -0
  25. package/dist/hook/CosmosNativeHookReader.d.ts +3 -3
  26. package/dist/hook/CosmosNativeHookReader.d.ts.map +1 -1
  27. package/dist/hook/CosmosNativeHookReader.js +4 -4
  28. package/dist/hook/CosmosNativeHookReader.js.map +1 -1
  29. package/dist/ica/types.d.ts +40 -0
  30. package/dist/ica/types.d.ts.map +1 -1
  31. package/dist/index.d.ts +8 -8
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +7 -6
  34. package/dist/index.js.map +1 -1
  35. package/dist/ism/CosmosNativeIsmReader.d.ts +3 -3
  36. package/dist/ism/CosmosNativeIsmReader.d.ts.map +1 -1
  37. package/dist/ism/CosmosNativeIsmReader.js +4 -4
  38. package/dist/ism/CosmosNativeIsmReader.js.map +1 -1
  39. package/dist/ism/EvmIsmReader.d.ts +3 -3
  40. package/dist/ism/EvmIsmReader.d.ts.map +1 -1
  41. package/dist/ism/EvmIsmReader.js +42 -6
  42. package/dist/ism/EvmIsmReader.js.map +1 -1
  43. package/dist/ism/EvmIsmReader.test.js +36 -1
  44. package/dist/ism/EvmIsmReader.test.js.map +1 -1
  45. package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
  46. package/dist/ism/HyperlaneIsmFactory.js +2 -0
  47. package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
  48. package/dist/ism/metadata/builder.d.ts +2 -2
  49. package/dist/ism/metadata/builder.d.ts.map +1 -1
  50. package/dist/ism/metadata/builder.js +4 -3
  51. package/dist/ism/metadata/builder.js.map +1 -1
  52. package/dist/ism/metadata/ccipread.d.ts +1 -0
  53. package/dist/ism/metadata/ccipread.d.ts.map +1 -1
  54. package/dist/ism/metadata/ccipread.hardhat-test.js +29 -3
  55. package/dist/ism/metadata/ccipread.hardhat-test.js.map +1 -1
  56. package/dist/ism/metadata/ccipread.js +5 -4
  57. package/dist/ism/metadata/ccipread.js.map +1 -1
  58. package/dist/ism/metadata/decode.js +2 -2
  59. package/dist/ism/metadata/decode.js.map +1 -1
  60. package/dist/ism/metadata/routing.d.ts +4 -2
  61. package/dist/ism/metadata/routing.d.ts.map +1 -1
  62. package/dist/ism/metadata/routing.js +33 -36
  63. package/dist/ism/metadata/routing.js.map +1 -1
  64. package/dist/ism/types.d.ts +18 -0
  65. package/dist/ism/types.d.ts.map +1 -1
  66. package/dist/ism/types.js +9 -0
  67. package/dist/ism/types.js.map +1 -1
  68. package/dist/ism/utils.d.ts.map +1 -1
  69. package/dist/ism/utils.js +7 -7
  70. package/dist/ism/utils.js.map +1 -1
  71. package/dist/middleware/account/InterchainAccount.d.ts +54 -3
  72. package/dist/middleware/account/InterchainAccount.d.ts.map +1 -1
  73. package/dist/middleware/account/InterchainAccount.js +81 -6
  74. package/dist/middleware/account/InterchainAccount.js.map +1 -1
  75. package/dist/providers/SmartProvider/SmartProvider.d.ts.map +1 -1
  76. package/dist/providers/SmartProvider/SmartProvider.foundry-test.js +6 -0
  77. package/dist/providers/SmartProvider/SmartProvider.foundry-test.js.map +1 -1
  78. package/dist/providers/SmartProvider/SmartProvider.js +7 -3
  79. package/dist/providers/SmartProvider/SmartProvider.js.map +1 -1
  80. package/dist/providers/transactions/submitter/IcaTxSubmitter.d.ts +23 -0
  81. package/dist/providers/transactions/submitter/IcaTxSubmitter.d.ts.map +1 -0
  82. package/dist/providers/transactions/submitter/IcaTxSubmitter.js +76 -0
  83. package/dist/providers/transactions/submitter/IcaTxSubmitter.js.map +1 -0
  84. package/dist/providers/transactions/submitter/TxSubmitterTypes.d.ts +2 -1
  85. package/dist/providers/transactions/submitter/TxSubmitterTypes.d.ts.map +1 -1
  86. package/dist/providers/transactions/submitter/TxSubmitterTypes.js +1 -0
  87. package/dist/providers/transactions/submitter/TxSubmitterTypes.js.map +1 -1
  88. package/dist/providers/transactions/submitter/builder/TxSubmitterBuilder.d.ts +1 -10
  89. package/dist/providers/transactions/submitter/builder/TxSubmitterBuilder.d.ts.map +1 -1
  90. package/dist/providers/transactions/submitter/builder/TxSubmitterBuilder.js +3 -20
  91. package/dist/providers/transactions/submitter/builder/TxSubmitterBuilder.js.map +1 -1
  92. package/dist/providers/transactions/submitter/builder/types.d.ts +538 -174
  93. package/dist/providers/transactions/submitter/builder/types.d.ts.map +1 -1
  94. package/dist/providers/transactions/submitter/builder/types.js +59 -5
  95. package/dist/providers/transactions/submitter/builder/types.js.map +1 -1
  96. package/dist/providers/transactions/submitter/builder/types.test.d.ts.map +1 -0
  97. package/dist/providers/transactions/submitter/builder/types.test.js +274 -0
  98. package/dist/providers/transactions/submitter/builder/types.test.js.map +1 -0
  99. package/dist/providers/transactions/submitter/ethersV5/types.d.ts +59 -0
  100. package/dist/providers/transactions/submitter/ethersV5/types.d.ts.map +1 -1
  101. package/dist/providers/transactions/submitter/ethersV5/types.js +19 -0
  102. package/dist/providers/transactions/submitter/ethersV5/types.js.map +1 -1
  103. package/dist/providers/transactions/submitter/submitterBuilderGetter.d.ts +15 -0
  104. package/dist/providers/transactions/submitter/submitterBuilderGetter.d.ts.map +1 -0
  105. package/dist/providers/transactions/submitter/submitterBuilderGetter.js +36 -0
  106. package/dist/providers/transactions/submitter/submitterBuilderGetter.js.map +1 -0
  107. package/dist/providers/transactions/submitter/types.d.ts +247 -1
  108. package/dist/providers/transactions/submitter/types.d.ts.map +1 -1
  109. package/dist/providers/transactions/submitter/types.js +15 -18
  110. package/dist/providers/transactions/submitter/types.js.map +1 -1
  111. package/dist/rebalancer/types.d.ts +875 -0
  112. package/dist/rebalancer/types.d.ts.map +1 -0
  113. package/dist/rebalancer/types.js +119 -0
  114. package/dist/rebalancer/types.js.map +1 -0
  115. package/dist/router/HyperlaneRouterChecker.d.ts.map +1 -1
  116. package/dist/router/HyperlaneRouterChecker.js +7 -2
  117. package/dist/router/HyperlaneRouterChecker.js.map +1 -1
  118. package/dist/router/types.d.ts +60 -0
  119. package/dist/router/types.d.ts.map +1 -1
  120. package/dist/token/CosmosNativeWarpRouteReader.d.ts +51 -0
  121. package/dist/token/CosmosNativeWarpRouteReader.d.ts.map +1 -0
  122. package/dist/token/CosmosNativeWarpRouteReader.js +123 -0
  123. package/dist/token/CosmosNativeWarpRouteReader.js.map +1 -0
  124. package/dist/token/EvmERC20WarpModule.d.ts.map +1 -1
  125. package/dist/token/EvmERC20WarpModule.js +2 -1
  126. package/dist/token/EvmERC20WarpModule.js.map +1 -1
  127. package/dist/token/EvmERC20WarpRouteReader.js +1 -1
  128. package/dist/token/EvmERC20WarpRouteReader.js.map +1 -1
  129. package/dist/token/Token.d.ts.map +1 -1
  130. package/dist/token/Token.js +7 -1
  131. package/dist/token/Token.js.map +1 -1
  132. package/dist/token/TokenStandard.d.ts +5 -1
  133. package/dist/token/TokenStandard.d.ts.map +1 -1
  134. package/dist/token/TokenStandard.js +29 -4
  135. package/dist/token/TokenStandard.js.map +1 -1
  136. package/dist/token/adapters/CosmosModuleTokenAdapter.d.ts +1 -1
  137. package/dist/token/adapters/CosmosModuleTokenAdapter.d.ts.map +1 -1
  138. package/dist/token/adapters/CosmosModuleTokenAdapter.js +7 -4
  139. package/dist/token/adapters/CosmosModuleTokenAdapter.js.map +1 -1
  140. package/dist/token/adapters/EvmTokenAdapter.d.ts +14 -2
  141. package/dist/token/adapters/EvmTokenAdapter.d.ts.map +1 -1
  142. package/dist/token/adapters/EvmTokenAdapter.js +64 -3
  143. package/dist/token/adapters/EvmTokenAdapter.js.map +1 -1
  144. package/dist/token/adapters/ITokenAdapter.d.ts +9 -1
  145. package/dist/token/adapters/ITokenAdapter.d.ts.map +1 -1
  146. package/dist/token/adapters/StarknetTokenAdapter.d.ts +28 -6
  147. package/dist/token/adapters/StarknetTokenAdapter.d.ts.map +1 -1
  148. package/dist/token/adapters/StarknetTokenAdapter.js +59 -27
  149. package/dist/token/adapters/StarknetTokenAdapter.js.map +1 -1
  150. package/dist/token/configUtils.test.js +2 -2
  151. package/dist/token/configUtils.test.js.map +1 -1
  152. package/dist/token/deploy.d.ts.map +1 -1
  153. package/dist/token/deploy.js +7 -4
  154. package/dist/token/deploy.js.map +1 -1
  155. package/dist/token/types.d.ts +110 -0
  156. package/dist/token/types.d.ts.map +1 -1
  157. package/dist/utils/decimals.d.ts +2 -3
  158. package/dist/utils/decimals.d.ts.map +1 -1
  159. package/dist/utils/decimals.js +11 -3
  160. package/dist/utils/decimals.js.map +1 -1
  161. package/dist/utils/decimals.test.d.ts +2 -0
  162. package/dist/utils/decimals.test.d.ts.map +1 -0
  163. package/dist/utils/decimals.test.js +173 -0
  164. package/dist/utils/decimals.test.js.map +1 -0
  165. package/dist/utils/starknet.d.ts +5 -0
  166. package/dist/utils/starknet.d.ts.map +1 -1
  167. package/dist/utils/starknet.js +21 -0
  168. package/dist/utils/starknet.js.map +1 -1
  169. package/dist/warp/WarpCore.d.ts.map +1 -1
  170. package/dist/warp/WarpCore.js +24 -1
  171. package/dist/warp/WarpCore.js.map +1 -1
  172. package/package.json +6 -6
  173. package/dist/providers/transactions/transformer/TxTransformerInterface.d.ts +0 -15
  174. package/dist/providers/transactions/transformer/TxTransformerInterface.d.ts.map +0 -1
  175. package/dist/providers/transactions/transformer/TxTransformerInterface.js +0 -2
  176. package/dist/providers/transactions/transformer/TxTransformerInterface.js.map +0 -1
  177. package/dist/providers/transactions/transformer/TxTransformerTypes.d.ts +0 -4
  178. package/dist/providers/transactions/transformer/TxTransformerTypes.d.ts.map +0 -1
  179. package/dist/providers/transactions/transformer/TxTransformerTypes.js +0 -5
  180. package/dist/providers/transactions/transformer/TxTransformerTypes.js.map +0 -1
  181. package/dist/providers/transactions/transformer/ethersV5/EV5InterchainAccountTxTransformer.d.ts +0 -15
  182. package/dist/providers/transactions/transformer/ethersV5/EV5InterchainAccountTxTransformer.d.ts.map +0 -1
  183. package/dist/providers/transactions/transformer/ethersV5/EV5InterchainAccountTxTransformer.js +0 -41
  184. package/dist/providers/transactions/transformer/ethersV5/EV5InterchainAccountTxTransformer.js.map +0 -1
  185. package/dist/providers/transactions/transformer/ethersV5/EV5TxTransformerInterface.d.ts +0 -5
  186. package/dist/providers/transactions/transformer/ethersV5/EV5TxTransformerInterface.d.ts.map +0 -1
  187. package/dist/providers/transactions/transformer/ethersV5/EV5TxTransformerInterface.js +0 -2
  188. package/dist/providers/transactions/transformer/ethersV5/EV5TxTransformerInterface.js.map +0 -1
  189. package/dist/providers/transactions/transformer/ethersV5/types.d.ts +0 -60
  190. package/dist/providers/transactions/transformer/ethersV5/types.d.ts.map +0 -1
  191. package/dist/providers/transactions/transformer/ethersV5/types.js +0 -7
  192. package/dist/providers/transactions/transformer/ethersV5/types.js.map +0 -1
  193. package/dist/providers/transactions/transformer/ethersV5/types.test.d.ts.map +0 -1
  194. package/dist/providers/transactions/transformer/ethersV5/types.test.js +0 -44
  195. package/dist/providers/transactions/transformer/ethersV5/types.test.js.map +0 -1
  196. package/dist/providers/transactions/transformer/types.d.ts +0 -50
  197. package/dist/providers/transactions/transformer/types.d.ts.map +0 -1
  198. package/dist/providers/transactions/transformer/types.js +0 -10
  199. package/dist/providers/transactions/transformer/types.js.map +0 -1
  200. /package/dist/providers/transactions/{transformer/ethersV5 → submitter/builder}/types.test.d.ts +0 -0
@@ -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,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAGzC,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;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,10 +1,64 @@
1
1
  import { z } from 'zod';
2
+ import { eqAddress, objMap } from '@hyperlane-xyz/utils';
2
3
  import { ZChainName } from '../../../../metadata/customZodTypes.js';
3
- import { TransformerMetadataSchema } from '../../transformer/types.js';
4
+ import { TxSubmitterType } from '../TxSubmitterTypes.js';
4
5
  import { SubmitterMetadataSchema } from '../types.js';
5
- export const SubmissionStrategySchema = z.object({
6
+ export const SubmissionStrategySchema = z
7
+ .object({
6
8
  submitter: SubmitterMetadataSchema,
7
- transforms: z.array(TransformerMetadataSchema).optional(),
8
- });
9
- export const ChainSubmissionStrategySchema = z.record(ZChainName, SubmissionStrategySchema);
9
+ })
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) => {
15
+ const castedValued = value;
16
+ const parsedValue = objMap(castedValued, (chainName, strategy) => {
17
+ if (strategy.submitter.type !== TxSubmitterType.INTERCHAIN_ACCOUNT) {
18
+ return strategy;
19
+ }
20
+ // Setting the default internal submitter config for interchain accounts here
21
+ // instead of using zod's default() modifier because we require the chain property to be set
22
+ const { internalSubmitter = {
23
+ type: TxSubmitterType.JSON_RPC,
24
+ chain: strategy.submitter.chain,
25
+ }, destinationChain, } = strategy.submitter;
26
+ const formattedInternalSubmitter = {
27
+ ...internalSubmitter,
28
+ chain: strategy.submitter.chain,
29
+ };
30
+ // When the internal submitter of the interchain account is a Multisig, the owner address and the multisig address need to match
31
+ if (formattedInternalSubmitter.type === TxSubmitterType.GNOSIS_SAFE ||
32
+ formattedInternalSubmitter.type === TxSubmitterType.GNOSIS_TX_BUILDER) {
33
+ strategy.submitter.owner =
34
+ strategy.submitter.owner ?? formattedInternalSubmitter.safeAddress;
35
+ }
36
+ return {
37
+ ...strategy,
38
+ submitter: {
39
+ ...strategy.submitter,
40
+ // Setting the destinationChain here so that it can be omitted in the input config
41
+ // as its value should be the same as the key value in the mapping
42
+ destinationChain: destinationChain ?? chainName,
43
+ internalSubmitter: formattedInternalSubmitter,
44
+ },
45
+ };
46
+ });
47
+ return parsedValue;
48
+ }, z.record(ZChainName, SubmissionStrategySchema).superRefine((value, ctx) => {
49
+ Object.entries(value).forEach(([chain, config]) => {
50
+ if (config.submitter.type !== TxSubmitterType.INTERCHAIN_ACCOUNT) {
51
+ return;
52
+ }
53
+ const { owner, internalSubmitter } = config.submitter;
54
+ if ((internalSubmitter.type === TxSubmitterType.GNOSIS_SAFE ||
55
+ internalSubmitter.type === TxSubmitterType.GNOSIS_TX_BUILDER) &&
56
+ !eqAddress(owner, internalSubmitter.safeAddress)) {
57
+ ctx.addIssue({
58
+ code: z.ZodIssueCode.custom,
59
+ message: `Interchain account owner address and multisig address must match for ${chain}`,
60
+ });
61
+ }
62
+ });
63
+ }));
10
64
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/providers/transactions/submitter/builder/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,SAAS,EAAE,uBAAuB;IAClC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,QAAQ,EAAE;CAC1D,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CACnD,UAAU,EACV,wBAAwB,CACzB,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/providers/transactions/submitter/builder/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.test.d.ts","sourceRoot":"","sources":["../../../../../src/providers/transactions/submitter/builder/types.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,274 @@
1
+ import { expect } from 'chai';
2
+ import { assert } from '@hyperlane-xyz/utils';
3
+ import { TxSubmitterType } from '../TxSubmitterTypes.js';
4
+ import { ChainSubmissionStrategySchema, SubmissionStrategySchema, } from './types.js';
5
+ describe('ChainSubmissionStrategySchema', () => {
6
+ const CHAIN_MOCK = 'ethereum';
7
+ const DESTINATION_CHAIN_MOCK = 'arbitrum';
8
+ const VERSION_MOCK = '1.0.0';
9
+ const ADDRESS_MOCK = '0x1234567890123456789012345678901234567890';
10
+ const OWNER_ADDRESS_MOCK = '0x9876543210987654321098765432109876543210';
11
+ describe('SubmissionStrategySchema', () => {
12
+ it('should fail parsing invalid submission strategy', () => {
13
+ const invalidStrategy = {
14
+ submitter: {
15
+ type: 'invalid',
16
+ },
17
+ };
18
+ const result = SubmissionStrategySchema.safeParse(invalidStrategy);
19
+ expect(result.success).to.be.false;
20
+ });
21
+ });
22
+ const testCases = [
23
+ {
24
+ submitter: {
25
+ type: TxSubmitterType.JSON_RPC,
26
+ chain: CHAIN_MOCK,
27
+ userAddress: ADDRESS_MOCK,
28
+ },
29
+ },
30
+ {
31
+ submitter: {
32
+ type: TxSubmitterType.IMPERSONATED_ACCOUNT,
33
+ chain: CHAIN_MOCK,
34
+ userAddress: ADDRESS_MOCK,
35
+ },
36
+ },
37
+ {
38
+ submitter: {
39
+ type: TxSubmitterType.GNOSIS_SAFE,
40
+ chain: CHAIN_MOCK,
41
+ safeAddress: ADDRESS_MOCK,
42
+ },
43
+ },
44
+ {
45
+ submitter: {
46
+ type: TxSubmitterType.GNOSIS_TX_BUILDER,
47
+ chain: CHAIN_MOCK,
48
+ version: VERSION_MOCK,
49
+ safeAddress: ADDRESS_MOCK,
50
+ },
51
+ },
52
+ {
53
+ submitter: {
54
+ type: TxSubmitterType.INTERCHAIN_ACCOUNT,
55
+ chain: CHAIN_MOCK,
56
+ owner: OWNER_ADDRESS_MOCK,
57
+ destinationChain: DESTINATION_CHAIN_MOCK,
58
+ internalSubmitter: {
59
+ type: TxSubmitterType.JSON_RPC,
60
+ chain: CHAIN_MOCK,
61
+ userAddress: ADDRESS_MOCK,
62
+ },
63
+ },
64
+ },
65
+ ];
66
+ for (const testCase of testCases) {
67
+ describe(testCase.submitter.type, () => {
68
+ it(`should parse valid ${testCase.submitter.type} submission strategy`, () => {
69
+ const result = SubmissionStrategySchema.safeParse(testCase);
70
+ expect(result.success).to.be.true;
71
+ });
72
+ it(`should parse valid chain submission strategy with ${testCase.submitter.type}`, () => {
73
+ const validChainStrategy = {
74
+ [CHAIN_MOCK]: testCase,
75
+ };
76
+ const result = ChainSubmissionStrategySchema.safeParse(validChainStrategy);
77
+ expect(result.success).to.be.true;
78
+ if (result.success) {
79
+ expect(result.data[CHAIN_MOCK].submitter.type).to.equal(testCase.submitter.type);
80
+ }
81
+ });
82
+ });
83
+ }
84
+ describe(TxSubmitterType.INTERCHAIN_ACCOUNT, () => {
85
+ it(`should set the internalSubmitter to ${TxSubmitterType.JSON_RPC} if no internalSubmitter is set`, () => {
86
+ const emptyStrategy = {
87
+ [DESTINATION_CHAIN_MOCK]: {
88
+ submitter: {
89
+ type: TxSubmitterType.INTERCHAIN_ACCOUNT,
90
+ chain: CHAIN_MOCK,
91
+ owner: OWNER_ADDRESS_MOCK,
92
+ },
93
+ },
94
+ };
95
+ const result = ChainSubmissionStrategySchema.safeParse(emptyStrategy);
96
+ expect(result.success).to.be.true;
97
+ assert(result.success, 'Expected valid chain submission strategy');
98
+ const { data } = result;
99
+ expect(data[DESTINATION_CHAIN_MOCK].submitter.type).to.equal(TxSubmitterType.INTERCHAIN_ACCOUNT);
100
+ assert(data[DESTINATION_CHAIN_MOCK].submitter.type ===
101
+ TxSubmitterType.INTERCHAIN_ACCOUNT, `Expected ${TxSubmitterType.INTERCHAIN_ACCOUNT}`);
102
+ expect(data[DESTINATION_CHAIN_MOCK].submitter.chain).to.equal(CHAIN_MOCK);
103
+ expect(data[DESTINATION_CHAIN_MOCK].submitter.owner).to.equal(OWNER_ADDRESS_MOCK);
104
+ expect(data[DESTINATION_CHAIN_MOCK].submitter.internalSubmitter.type).to.equal(TxSubmitterType.JSON_RPC);
105
+ expect(data[DESTINATION_CHAIN_MOCK].submitter.internalSubmitter.chain).to.equal(CHAIN_MOCK);
106
+ });
107
+ const unsetOwnerTestCases = testCases.filter((config) => config.submitter.type !== TxSubmitterType.INTERCHAIN_ACCOUNT &&
108
+ config.submitter.type !== TxSubmitterType.GNOSIS_SAFE &&
109
+ config.submitter.type !== TxSubmitterType.GNOSIS_TX_BUILDER);
110
+ for (const testCase of unsetOwnerTestCases) {
111
+ it(`should fail if the internalSubmitter is not a multisig and the owner is not set (${testCase.submitter.type})`, () => {
112
+ const emptyStrategy = {
113
+ [DESTINATION_CHAIN_MOCK]: {
114
+ submitter: {
115
+ type: TxSubmitterType.INTERCHAIN_ACCOUNT,
116
+ chain: CHAIN_MOCK,
117
+ internalSubmitter: testCase,
118
+ },
119
+ },
120
+ };
121
+ const result = ChainSubmissionStrategySchema.safeParse(emptyStrategy);
122
+ expect(result.success).to.be.false;
123
+ });
124
+ }
125
+ it('should preprocess interchain account strategy and set destinationChain from key', () => {
126
+ const inputStrategy = {
127
+ [DESTINATION_CHAIN_MOCK]: {
128
+ submitter: {
129
+ type: TxSubmitterType.INTERCHAIN_ACCOUNT,
130
+ chain: CHAIN_MOCK,
131
+ owner: OWNER_ADDRESS_MOCK,
132
+ internalSubmitter: {
133
+ type: TxSubmitterType.JSON_RPC,
134
+ userAddress: ADDRESS_MOCK,
135
+ },
136
+ },
137
+ },
138
+ };
139
+ const result = ChainSubmissionStrategySchema.safeParse(inputStrategy);
140
+ expect(result.success).to.be.true;
141
+ if (result.success) {
142
+ const icaSubmitter = result.data[DESTINATION_CHAIN_MOCK].submitter;
143
+ if (icaSubmitter.type === TxSubmitterType.INTERCHAIN_ACCOUNT) {
144
+ expect(icaSubmitter.destinationChain).to.equal(DESTINATION_CHAIN_MOCK);
145
+ expect(icaSubmitter.internalSubmitter.chain).to.equal(CHAIN_MOCK);
146
+ }
147
+ }
148
+ });
149
+ describe('with multisig internal submitter', () => {
150
+ const testCases = [
151
+ {
152
+ type: TxSubmitterType.GNOSIS_SAFE,
153
+ safeAddress: ADDRESS_MOCK,
154
+ },
155
+ {
156
+ type: TxSubmitterType.GNOSIS_TX_BUILDER,
157
+ safeAddress: ADDRESS_MOCK,
158
+ version: VERSION_MOCK,
159
+ },
160
+ ];
161
+ for (const testCase of testCases) {
162
+ it(`should set the owner field from the multisig address (${testCase.type})`, () => {
163
+ const inputStrategy = {
164
+ [DESTINATION_CHAIN_MOCK]: {
165
+ submitter: {
166
+ type: TxSubmitterType.INTERCHAIN_ACCOUNT,
167
+ chain: CHAIN_MOCK,
168
+ destinationChain: DESTINATION_CHAIN_MOCK,
169
+ internalSubmitter: testCase,
170
+ },
171
+ },
172
+ };
173
+ const result = ChainSubmissionStrategySchema.safeParse(inputStrategy);
174
+ expect(result.success).to.be.true;
175
+ assert(result.success, 'Expected parsing to be successful');
176
+ const icaSubmitter = result.data[DESTINATION_CHAIN_MOCK].submitter;
177
+ expect(icaSubmitter.type).to.equal(TxSubmitterType.INTERCHAIN_ACCOUNT);
178
+ assert(icaSubmitter.type === TxSubmitterType.INTERCHAIN_ACCOUNT, `Expected type to be ${TxSubmitterType.INTERCHAIN_ACCOUNT}`);
179
+ expect(icaSubmitter.chain).to.equal(CHAIN_MOCK);
180
+ expect(icaSubmitter.destinationChain).to.equal(DESTINATION_CHAIN_MOCK);
181
+ expect(icaSubmitter.owner).to.equal(ADDRESS_MOCK);
182
+ expect(icaSubmitter.internalSubmitter.type).to.equal(testCase.type);
183
+ assert(icaSubmitter.internalSubmitter.type ===
184
+ TxSubmitterType.GNOSIS_SAFE ||
185
+ icaSubmitter.internalSubmitter.type ===
186
+ TxSubmitterType.GNOSIS_TX_BUILDER, 'Expected internal submitter to be a multisig type');
187
+ expect(icaSubmitter.internalSubmitter.safeAddress).to.equal(ADDRESS_MOCK);
188
+ });
189
+ it(`should fail validation when interchain account owner and multisig address do not match (${testCase.type})`, () => {
190
+ const invalidStrategy = {
191
+ [DESTINATION_CHAIN_MOCK]: {
192
+ submitter: {
193
+ type: TxSubmitterType.INTERCHAIN_ACCOUNT,
194
+ chain: CHAIN_MOCK,
195
+ owner: OWNER_ADDRESS_MOCK, // Different from safeAddress
196
+ destinationChain: DESTINATION_CHAIN_MOCK,
197
+ internalSubmitter: testCase,
198
+ },
199
+ },
200
+ };
201
+ const result = ChainSubmissionStrategySchema.safeParse(invalidStrategy);
202
+ expect(result.success).to.be.false;
203
+ if (!result.success) {
204
+ expect(result.error.issues[0].message).to.include('Interchain account owner address and multisig address must match');
205
+ }
206
+ });
207
+ it(`should pass validation when interchain account owner and multisig address match (${testCase.type})`, () => {
208
+ const validStrategy = {
209
+ [DESTINATION_CHAIN_MOCK]: {
210
+ submitter: {
211
+ type: TxSubmitterType.INTERCHAIN_ACCOUNT,
212
+ chain: CHAIN_MOCK,
213
+ owner: ADDRESS_MOCK, // Same as safeAddress
214
+ destinationChain: DESTINATION_CHAIN_MOCK,
215
+ internalSubmitter: testCase,
216
+ },
217
+ },
218
+ };
219
+ const result = ChainSubmissionStrategySchema.safeParse(validStrategy);
220
+ expect(result.success).to.be.true;
221
+ });
222
+ }
223
+ });
224
+ });
225
+ describe('ChainSubmissionStrategySchema general behavior', () => {
226
+ it('should handle multiple chains in strategy', () => {
227
+ const multiChainStrategy = {
228
+ [CHAIN_MOCK]: {
229
+ submitter: {
230
+ type: TxSubmitterType.JSON_RPC,
231
+ chain: CHAIN_MOCK,
232
+ userAddress: ADDRESS_MOCK,
233
+ },
234
+ },
235
+ [DESTINATION_CHAIN_MOCK]: {
236
+ submitter: {
237
+ type: TxSubmitterType.GNOSIS_SAFE,
238
+ chain: DESTINATION_CHAIN_MOCK,
239
+ safeAddress: OWNER_ADDRESS_MOCK,
240
+ },
241
+ },
242
+ };
243
+ const result = ChainSubmissionStrategySchema.safeParse(multiChainStrategy);
244
+ expect(result.success).to.be.true;
245
+ if (result.success) {
246
+ expect(Object.keys(result.data)).to.have.length(2);
247
+ expect(result.data[CHAIN_MOCK].submitter.type).to.equal(TxSubmitterType.JSON_RPC);
248
+ expect(result.data[DESTINATION_CHAIN_MOCK].submitter.type).to.equal(TxSubmitterType.GNOSIS_SAFE);
249
+ }
250
+ });
251
+ it('should fail parsing invalid chain names', () => {
252
+ const invalidChainStrategy = {
253
+ 'invalid-chain': {
254
+ submitter: {
255
+ type: TxSubmitterType.JSON_RPC,
256
+ chain: 'invalid-chain',
257
+ userAddress: ADDRESS_MOCK,
258
+ },
259
+ },
260
+ };
261
+ const result = ChainSubmissionStrategySchema.safeParse(invalidChainStrategy);
262
+ expect(result.success).to.be.false;
263
+ });
264
+ it('should handle empty strategy object', () => {
265
+ const emptyStrategy = {};
266
+ const result = ChainSubmissionStrategySchema.safeParse(emptyStrategy);
267
+ expect(result.success).to.be.true; // Empty object should be valid
268
+ if (result.success) {
269
+ expect(Object.keys(result.data)).to.have.length(0);
270
+ }
271
+ });
272
+ });
273
+ });
274
+ //# sourceMappingURL=types.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.test.js","sourceRoot":"","sources":["../../../../../src/providers/transactions/submitter/builder/types.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { z } from 'zod';
2
+ import { TxSubmitterType } from '../TxSubmitterTypes.js';
2
3
  export declare const EV5GnosisSafeTxSubmitterPropsSchema: z.ZodObject<{
3
4
  chain: z.ZodString;
4
5
  safeAddress: z.ZodString;
@@ -52,4 +53,62 @@ export declare const EV5ImpersonatedAccountTxSubmitterPropsSchema: z.ZodObject<{
52
53
  privateKey?: string | undefined;
53
54
  }>;
54
55
  export type EV5ImpersonatedAccountTxSubmitterProps = z.infer<typeof EV5ImpersonatedAccountTxSubmitterPropsSchema>;
56
+ export declare const EvmSubmitterMetadataSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
57
+ chain: z.ZodString;
58
+ userAddress: z.ZodOptional<z.ZodString>;
59
+ privateKey: z.ZodOptional<z.ZodString>;
60
+ type: z.ZodLiteral<TxSubmitterType.JSON_RPC>;
61
+ }, "strip", z.ZodTypeAny, {
62
+ type: TxSubmitterType.JSON_RPC;
63
+ chain: string;
64
+ userAddress?: string | undefined;
65
+ privateKey?: string | undefined;
66
+ }, {
67
+ type: TxSubmitterType.JSON_RPC;
68
+ chain: string;
69
+ userAddress?: string | undefined;
70
+ privateKey?: string | undefined;
71
+ }>, z.ZodObject<{
72
+ chain: z.ZodString;
73
+ privateKey: z.ZodOptional<z.ZodString>;
74
+ userAddress: z.ZodString;
75
+ type: z.ZodLiteral<TxSubmitterType.IMPERSONATED_ACCOUNT>;
76
+ }, "strip", z.ZodTypeAny, {
77
+ type: TxSubmitterType.IMPERSONATED_ACCOUNT;
78
+ chain: string;
79
+ userAddress: string;
80
+ privateKey?: string | undefined;
81
+ }, {
82
+ type: TxSubmitterType.IMPERSONATED_ACCOUNT;
83
+ chain: string;
84
+ userAddress: string;
85
+ privateKey?: string | undefined;
86
+ }>, z.ZodObject<{
87
+ chain: z.ZodString;
88
+ safeAddress: z.ZodString;
89
+ type: z.ZodLiteral<TxSubmitterType.GNOSIS_SAFE>;
90
+ }, "strip", z.ZodTypeAny, {
91
+ type: TxSubmitterType.GNOSIS_SAFE;
92
+ chain: string;
93
+ safeAddress: string;
94
+ }, {
95
+ type: TxSubmitterType.GNOSIS_SAFE;
96
+ chain: string;
97
+ safeAddress: string;
98
+ }>, z.ZodObject<{
99
+ version: z.ZodDefault<z.ZodString>;
100
+ chain: z.ZodString;
101
+ safeAddress: z.ZodString;
102
+ type: z.ZodLiteral<TxSubmitterType.GNOSIS_TX_BUILDER>;
103
+ }, "strip", z.ZodTypeAny, {
104
+ type: TxSubmitterType.GNOSIS_TX_BUILDER;
105
+ version: string;
106
+ chain: string;
107
+ safeAddress: string;
108
+ }, {
109
+ type: TxSubmitterType.GNOSIS_TX_BUILDER;
110
+ chain: string;
111
+ safeAddress: string;
112
+ version?: string | undefined;
113
+ }>]>;
55
114
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/providers/transactions/submitter/ethersV5/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,mCAAmC;;;;;;;;;EAG9C,CAAC;AAEH,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CACjD,OAAO,mCAAmC,CAC3C,CAAC;AAEF,eAAO,MAAM,iCAAiC;;;;;;;;;;;;EAI5C,CAAC;AAEH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAC/C,OAAO,iCAAiC,CACzC,CAAC;AAEF,eAAO,MAAM,gCAAgC;;;;;;;;;;;;EAI3C,CAAC;AAEH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAC9C,OAAO,gCAAgC,CACxC,CAAC;AAEF,eAAO,MAAM,4CAA4C;;;;;;;;;;;;EAGrD,CAAC;AAEL,MAAM,MAAM,sCAAsC,GAAG,CAAC,CAAC,KAAK,CAC1D,OAAO,4CAA4C,CACpD,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/providers/transactions/submitter/ethersV5/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,eAAO,MAAM,mCAAmC;;;;;;;;;EAG9C,CAAC;AAEH,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CACjD,OAAO,mCAAmC,CAC3C,CAAC;AAEF,eAAO,MAAM,iCAAiC;;;;;;;;;;;;EAI5C,CAAC;AAEH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAC/C,OAAO,iCAAiC,CACzC,CAAC;AAEF,eAAO,MAAM,gCAAgC;;;;;;;;;;;;EAI3C,CAAC;AAEH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAC9C,OAAO,gCAAgC,CACxC,CAAC;AAEF,eAAO,MAAM,4CAA4C;;;;;;;;;;;;EAGrD,CAAC;AAEL,MAAM,MAAM,sCAAsC,GAAG,CAAC,CAAC,KAAK,CAC1D,OAAO,4CAA4C,CACpD,CAAC;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiBrC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { ZChainName, ZHash } from '../../../../metadata/customZodTypes.js';
3
+ import { TxSubmitterType } from '../TxSubmitterTypes.js';
3
4
  export const EV5GnosisSafeTxSubmitterPropsSchema = z.object({
4
5
  chain: ZChainName,
5
6
  safeAddress: ZHash,
@@ -17,4 +18,22 @@ export const EV5JsonRpcTxSubmitterPropsSchema = z.object({
17
18
  export const EV5ImpersonatedAccountTxSubmitterPropsSchema = EV5JsonRpcTxSubmitterPropsSchema.extend({
18
19
  userAddress: ZHash,
19
20
  });
21
+ export const EvmSubmitterMetadataSchema = z.discriminatedUnion('type', [
22
+ z.object({
23
+ type: z.literal(TxSubmitterType.JSON_RPC),
24
+ ...EV5JsonRpcTxSubmitterPropsSchema.shape,
25
+ }),
26
+ z.object({
27
+ type: z.literal(TxSubmitterType.IMPERSONATED_ACCOUNT),
28
+ ...EV5ImpersonatedAccountTxSubmitterPropsSchema.shape,
29
+ }),
30
+ z.object({
31
+ type: z.literal(TxSubmitterType.GNOSIS_SAFE),
32
+ ...EV5GnosisSafeTxSubmitterPropsSchema.shape,
33
+ }),
34
+ z.object({
35
+ type: z.literal(TxSubmitterType.GNOSIS_TX_BUILDER),
36
+ ...EV5GnosisSafeTxBuilderPropsSchema.shape,
37
+ }),
38
+ ]);
20
39
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/providers/transactions/submitter/ethersV5/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,wCAAwC,CAAC;AAE3E,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1D,KAAK,EAAE,UAAU;IACjB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC,MAAM,CAAC;IACxD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAClC,KAAK,EAAE,UAAU;IACjB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,MAAM,CAAC;IACvD,KAAK,EAAE,UAAU;IACjB,WAAW,EAAE,KAAK,CAAC,QAAQ,EAAE;IAC7B,UAAU,EAAE,KAAK,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,4CAA4C,GACvD,gCAAgC,CAAC,MAAM,CAAC;IACtC,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/providers/transactions/submitter/ethersV5/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1D,KAAK,EAAE,UAAU;IACjB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC,MAAM,CAAC;IACxD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAClC,KAAK,EAAE,UAAU;IACjB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,MAAM,CAAC;IACvD,KAAK,EAAE,UAAU;IACjB,WAAW,EAAE,KAAK,CAAC,QAAQ,EAAE;IAC7B,UAAU,EAAE,KAAK,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,4CAA4C,GACvD,gCAAgC,CAAC,MAAM,CAAC;IACtC,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAML,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACrE,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC;QACzC,GAAG,gCAAgC,CAAC,KAAK;KAC1C,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,oBAAoB,CAAC;QACrD,GAAG,4CAA4C,CAAC,KAAK;KACtD,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC;QAC5C,GAAG,mCAAmC,CAAC,KAAK;KAC7C,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,iBAAiB,CAAC;QAClD,GAAG,iCAAiC,CAAC,KAAK;KAC3C,CAAC;CACH,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { IRegistry } from '@hyperlane-xyz/registry';
2
+ import { ProtocolType } from '@hyperlane-xyz/utils';
3
+ import { MultiProvider } from '../../MultiProvider.js';
4
+ import { TxSubmitterInterface } from './TxSubmitterInterface.js';
5
+ import { TxSubmitterBuilder } from './builder/TxSubmitterBuilder.js';
6
+ import { SubmissionStrategy } from './builder/types.js';
7
+ import { SubmitterMetadata } from './types.js';
8
+ export type SubmitterBuilderSettings = {
9
+ submissionStrategy: SubmissionStrategy;
10
+ multiProvider: MultiProvider;
11
+ registry: IRegistry;
12
+ };
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>>;
15
+ //# sourceMappingURL=submitterBuilderGetter.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,36 @@
1
+ import { EvmIcaTxSubmitter } from './IcaTxSubmitter.js';
2
+ import { TxSubmitterType } from './TxSubmitterTypes.js';
3
+ import { TxSubmitterBuilder } from './builder/TxSubmitterBuilder.js';
4
+ import { EV5GnosisSafeTxBuilder } from './ethersV5/EV5GnosisSafeTxBuilder.js';
5
+ import { EV5GnosisSafeTxSubmitter } from './ethersV5/EV5GnosisSafeTxSubmitter.js';
6
+ import { EV5ImpersonatedAccountTxSubmitter } from './ethersV5/EV5ImpersonatedAccountTxSubmitter.js';
7
+ import { EV5JsonRpcTxSubmitter } from './ethersV5/EV5JsonRpcTxSubmitter.js';
8
+ export async function getSubmitterBuilder({ submissionStrategy, multiProvider, registry, }) {
9
+ const submitter = await getSubmitter(multiProvider, submissionStrategy.submitter, registry);
10
+ return new TxSubmitterBuilder(submitter);
11
+ }
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.`);
34
+ }
35
+ }
36
+ //# sourceMappingURL=submitterBuilderGetter.js.map
@@ -0,0 +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"}