@hyperlane-xyz/sdk 13.4.0 → 14.1.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 (135) hide show
  1. package/dist/contracts/contracts.d.ts +2 -0
  2. package/dist/contracts/contracts.d.ts.map +1 -1
  3. package/dist/contracts/contracts.hardhat-test.d.ts +2 -0
  4. package/dist/contracts/contracts.hardhat-test.d.ts.map +1 -0
  5. package/dist/contracts/contracts.hardhat-test.js +34 -0
  6. package/dist/contracts/contracts.hardhat-test.js.map +1 -0
  7. package/dist/contracts/contracts.js +7 -0
  8. package/dist/contracts/contracts.js.map +1 -1
  9. package/dist/core/types.d.ts +17 -17
  10. package/dist/deploy/proxy.d.ts +1 -2
  11. package/dist/deploy/proxy.d.ts.map +1 -1
  12. package/dist/deploy/verify/ContractVerifier.d.ts.map +1 -1
  13. package/dist/deploy/verify/ContractVerifier.js +0 -6
  14. package/dist/deploy/verify/ContractVerifier.js.map +1 -1
  15. package/dist/gas/oracle/types.d.ts +51 -0
  16. package/dist/gas/oracle/types.d.ts.map +1 -1
  17. package/dist/gas/oracle/types.js +8 -0
  18. package/dist/gas/oracle/types.js.map +1 -1
  19. package/dist/gas/utils.d.ts +3 -2
  20. package/dist/gas/utils.d.ts.map +1 -1
  21. package/dist/gas/utils.js +4 -1
  22. package/dist/gas/utils.js.map +1 -1
  23. package/dist/ica/types.d.ts +2 -2
  24. package/dist/index.d.ts +4 -7
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +4 -5
  27. package/dist/index.js.map +1 -1
  28. package/dist/ism/EvmIsmReader.d.ts.map +1 -1
  29. package/dist/ism/EvmIsmReader.js +21 -5
  30. package/dist/ism/EvmIsmReader.js.map +1 -1
  31. package/dist/metadata/ChainMetadataManager.d.ts +1 -0
  32. package/dist/metadata/ChainMetadataManager.d.ts.map +1 -1
  33. package/dist/metadata/ChainMetadataManager.js +5 -0
  34. package/dist/metadata/ChainMetadataManager.js.map +1 -1
  35. package/dist/metadata/agentConfig.d.ts +1560 -1560
  36. package/dist/metadata/chainMetadataTypes.d.ts +6 -6
  37. package/dist/middleware/account/InterchainAccount.d.ts +3 -2
  38. package/dist/middleware/account/InterchainAccount.d.ts.map +1 -1
  39. package/dist/middleware/account/InterchainAccount.js +31 -5
  40. package/dist/middleware/account/InterchainAccount.js.map +1 -1
  41. package/dist/providers/transactions/submitter/IcaTxSubmitter.d.ts +23 -0
  42. package/dist/providers/transactions/submitter/IcaTxSubmitter.d.ts.map +1 -0
  43. package/dist/providers/transactions/submitter/IcaTxSubmitter.js +76 -0
  44. package/dist/providers/transactions/submitter/IcaTxSubmitter.js.map +1 -0
  45. package/dist/providers/transactions/submitter/TxSubmitterTypes.d.ts +2 -1
  46. package/dist/providers/transactions/submitter/TxSubmitterTypes.d.ts.map +1 -1
  47. package/dist/providers/transactions/submitter/TxSubmitterTypes.js +1 -0
  48. package/dist/providers/transactions/submitter/TxSubmitterTypes.js.map +1 -1
  49. package/dist/providers/transactions/submitter/builder/TxSubmitterBuilder.d.ts +1 -10
  50. package/dist/providers/transactions/submitter/builder/TxSubmitterBuilder.d.ts.map +1 -1
  51. package/dist/providers/transactions/submitter/builder/TxSubmitterBuilder.js +3 -20
  52. package/dist/providers/transactions/submitter/builder/TxSubmitterBuilder.js.map +1 -1
  53. package/dist/providers/transactions/submitter/builder/types.d.ts +542 -178
  54. package/dist/providers/transactions/submitter/builder/types.d.ts.map +1 -1
  55. package/dist/providers/transactions/submitter/builder/types.js +59 -5
  56. package/dist/providers/transactions/submitter/builder/types.js.map +1 -1
  57. package/dist/providers/transactions/submitter/builder/types.test.d.ts.map +1 -0
  58. package/dist/providers/transactions/submitter/builder/types.test.js +274 -0
  59. package/dist/providers/transactions/submitter/builder/types.test.js.map +1 -0
  60. package/dist/providers/transactions/submitter/ethersV5/types.d.ts +60 -1
  61. package/dist/providers/transactions/submitter/ethersV5/types.d.ts.map +1 -1
  62. package/dist/providers/transactions/submitter/ethersV5/types.js +19 -0
  63. package/dist/providers/transactions/submitter/ethersV5/types.js.map +1 -1
  64. package/dist/providers/transactions/submitter/submitterBuilderGetter.d.ts +15 -0
  65. package/dist/providers/transactions/submitter/submitterBuilderGetter.d.ts.map +1 -0
  66. package/dist/providers/transactions/submitter/submitterBuilderGetter.js +36 -0
  67. package/dist/providers/transactions/submitter/submitterBuilderGetter.js.map +1 -0
  68. package/dist/providers/transactions/submitter/types.d.ts +248 -2
  69. package/dist/providers/transactions/submitter/types.d.ts.map +1 -1
  70. package/dist/providers/transactions/submitter/types.js +15 -18
  71. package/dist/providers/transactions/submitter/types.js.map +1 -1
  72. package/dist/router/HyperlaneRouterChecker.d.ts.map +1 -1
  73. package/dist/router/HyperlaneRouterChecker.js +7 -2
  74. package/dist/router/HyperlaneRouterChecker.js.map +1 -1
  75. package/dist/router/types.d.ts +1 -1
  76. package/dist/token/EvmERC20WarpModule.hardhat-test.js +7 -7
  77. package/dist/token/EvmERC20WarpModule.hardhat-test.js.map +1 -1
  78. package/dist/token/EvmERC20WarpRouteReader.d.ts +3 -1
  79. package/dist/token/EvmERC20WarpRouteReader.d.ts.map +1 -1
  80. package/dist/token/EvmERC20WarpRouteReader.hardhat-test.js +123 -5
  81. package/dist/token/EvmERC20WarpRouteReader.hardhat-test.js.map +1 -1
  82. package/dist/token/EvmERC20WarpRouteReader.js +68 -10
  83. package/dist/token/EvmERC20WarpRouteReader.js.map +1 -1
  84. package/dist/token/Token.d.ts.map +1 -1
  85. package/dist/token/Token.js +7 -1
  86. package/dist/token/Token.js.map +1 -1
  87. package/dist/token/adapters/StarknetTokenAdapter.d.ts +28 -6
  88. package/dist/token/adapters/StarknetTokenAdapter.d.ts.map +1 -1
  89. package/dist/token/adapters/StarknetTokenAdapter.js +59 -27
  90. package/dist/token/adapters/StarknetTokenAdapter.js.map +1 -1
  91. package/dist/token/configUtils.d.ts.map +1 -1
  92. package/dist/token/configUtils.js +29 -6
  93. package/dist/token/configUtils.js.map +1 -1
  94. package/dist/token/deploy.js +6 -6
  95. package/dist/token/deploy.js.map +1 -1
  96. package/dist/token/types.d.ts +41 -8
  97. package/dist/token/types.d.ts.map +1 -1
  98. package/dist/token/types.js +20 -6
  99. package/dist/token/types.js.map +1 -1
  100. package/dist/utils/starknet.d.ts +5 -0
  101. package/dist/utils/starknet.d.ts.map +1 -1
  102. package/dist/utils/starknet.js +21 -0
  103. package/dist/utils/starknet.js.map +1 -1
  104. package/dist/warp/WarpCore.d.ts.map +1 -1
  105. package/dist/warp/WarpCore.js +22 -0
  106. package/dist/warp/WarpCore.js.map +1 -1
  107. package/package.json +5 -5
  108. package/dist/providers/transactions/transformer/TxTransformerInterface.d.ts +0 -15
  109. package/dist/providers/transactions/transformer/TxTransformerInterface.d.ts.map +0 -1
  110. package/dist/providers/transactions/transformer/TxTransformerInterface.js +0 -2
  111. package/dist/providers/transactions/transformer/TxTransformerInterface.js.map +0 -1
  112. package/dist/providers/transactions/transformer/TxTransformerTypes.d.ts +0 -4
  113. package/dist/providers/transactions/transformer/TxTransformerTypes.d.ts.map +0 -1
  114. package/dist/providers/transactions/transformer/TxTransformerTypes.js +0 -5
  115. package/dist/providers/transactions/transformer/TxTransformerTypes.js.map +0 -1
  116. package/dist/providers/transactions/transformer/ethersV5/EV5InterchainAccountTxTransformer.d.ts +0 -15
  117. package/dist/providers/transactions/transformer/ethersV5/EV5InterchainAccountTxTransformer.d.ts.map +0 -1
  118. package/dist/providers/transactions/transformer/ethersV5/EV5InterchainAccountTxTransformer.js +0 -41
  119. package/dist/providers/transactions/transformer/ethersV5/EV5InterchainAccountTxTransformer.js.map +0 -1
  120. package/dist/providers/transactions/transformer/ethersV5/EV5TxTransformerInterface.d.ts +0 -5
  121. package/dist/providers/transactions/transformer/ethersV5/EV5TxTransformerInterface.d.ts.map +0 -1
  122. package/dist/providers/transactions/transformer/ethersV5/EV5TxTransformerInterface.js +0 -2
  123. package/dist/providers/transactions/transformer/ethersV5/EV5TxTransformerInterface.js.map +0 -1
  124. package/dist/providers/transactions/transformer/ethersV5/types.d.ts +0 -60
  125. package/dist/providers/transactions/transformer/ethersV5/types.d.ts.map +0 -1
  126. package/dist/providers/transactions/transformer/ethersV5/types.js +0 -7
  127. package/dist/providers/transactions/transformer/ethersV5/types.js.map +0 -1
  128. package/dist/providers/transactions/transformer/ethersV5/types.test.d.ts.map +0 -1
  129. package/dist/providers/transactions/transformer/ethersV5/types.test.js +0 -44
  130. package/dist/providers/transactions/transformer/ethersV5/types.test.js.map +0 -1
  131. package/dist/providers/transactions/transformer/types.d.ts +0 -50
  132. package/dist/providers/transactions/transformer/types.d.ts.map +0 -1
  133. package/dist/providers/transactions/transformer/types.js +0 -10
  134. package/dist/providers/transactions/transformer/types.js.map +0 -1
  135. /package/dist/providers/transactions/{transformer/ethersV5 → submitter/builder}/types.test.d.ts +0 -0
@@ -450,9 +450,6 @@ export declare const ChainMetadataSchemaObject: z.ZodObject<{
450
450
  }>>;
451
451
  }, "strip", z.ZodTypeAny, {
452
452
  name: string;
453
- chainId: string | number;
454
- domainId: number;
455
- protocol: ProtocolType;
456
453
  rpcUrls: {
457
454
  http: string;
458
455
  concurrency?: number | undefined;
@@ -468,6 +465,9 @@ export declare const ChainMetadataSchemaObject: z.ZodObject<{
468
465
  } | undefined;
469
466
  public?: boolean | undefined;
470
467
  }[];
468
+ chainId: string | number;
469
+ domainId: number;
470
+ protocol: ProtocolType;
471
471
  availability?: {
472
472
  status: ChainStatus.Disabled;
473
473
  reasons: ChainDisabledReason[];
@@ -548,9 +548,6 @@ export declare const ChainMetadataSchemaObject: z.ZodObject<{
548
548
  } | undefined;
549
549
  }, {
550
550
  name: string;
551
- chainId: string | number;
552
- domainId: number;
553
- protocol: ProtocolType;
554
551
  rpcUrls: {
555
552
  http: string;
556
553
  concurrency?: number | undefined;
@@ -566,6 +563,9 @@ export declare const ChainMetadataSchemaObject: z.ZodObject<{
566
563
  } | undefined;
567
564
  public?: boolean | undefined;
568
565
  }[];
566
+ chainId: string | number;
567
+ domainId: number;
568
+ protocol: ProtocolType;
569
569
  availability?: {
570
570
  status: ChainStatus.Disabled;
571
571
  reasons: ChainDisabledReason[];
@@ -1,6 +1,7 @@
1
1
  import { PopulatedTransaction } from 'ethers';
2
2
  import { z } from 'zod';
3
3
  import { InterchainAccountRouter } from '@hyperlane-xyz/core';
4
+ import { IRegistry } from '@hyperlane-xyz/registry';
4
5
  import { Address, CallData } from '@hyperlane-xyz/utils';
5
6
  import { HyperlaneAddressesMap, HyperlaneContracts, HyperlaneContractsMap } from '../../contracts/types.js';
6
7
  import { MultiProvider } from '../../providers/MultiProvider.js';
@@ -20,8 +21,8 @@ export declare class InterchainAccount extends RouterApp<InterchainAccountFactor
20
21
  getCallRemote({ chain, destination, innerCalls, config, hookMetadata, }: GetCallRemoteSettings): Promise<PopulatedTransaction>;
21
22
  callRemote({ chain, destination, innerCalls, config, hookMetadata, }: GetCallRemoteSettings): Promise<void>;
22
23
  }
23
- export declare function buildInterchainAccountApp(multiProvider: MultiProvider, chain: ChainName, config: AccountConfig): InterchainAccount;
24
- export declare function deployInterchainAccount(multiProvider: MultiProvider, chain: ChainName, config: AccountConfig): Promise<Address>;
24
+ export declare function buildInterchainAccountApp(multiProvider: MultiProvider, chain: ChainName, config: AccountConfig, registry: Readonly<IRegistry>): Promise<InterchainAccount>;
25
+ export declare function deployInterchainAccount(multiProvider: MultiProvider, chain: ChainName, config: AccountConfig, registry: IRegistry): Promise<Address>;
25
26
  export declare function encodeIcaCalls(calls: CallData[], salt: string): string;
26
27
  export type RawCallData = {
27
28
  to: string;
@@ -1 +1 @@
1
- {"version":3,"file":"InterchainAccount.d.ts","sourceRoot":"","sources":["../../../src/middleware/account/InterchainAccount.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InterchainAccount.d.ts","sourceRoot":"","sources":["../../../src/middleware/account/InterchainAccount.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { BigNumber, utils } from 'ethers';
2
2
  import { z } from 'zod';
3
- import { addBufferToGasLimit, addressToBytes32, bytes32ToAddress, isZeroishAddress, } from '@hyperlane-xyz/utils';
3
+ import { InterchainAccountRouter__factory, } from '@hyperlane-xyz/core';
4
+ import { addBufferToGasLimit, addressToBytes32, arrayToObject, bytes32ToAddress, eqAddress, isZeroishAddress, objFilter, objMap, promiseObjAll, } from '@hyperlane-xyz/utils';
4
5
  import { appFromAddressesMapHelper } from '../../contracts/contracts.js';
5
6
  import { RouterApp } from '../../router/RouterApps.js';
6
7
  import { interchainAccountFactories, } from './contracts.js';
@@ -93,17 +94,42 @@ export class InterchainAccount extends RouterApp {
93
94
  }));
94
95
  }
95
96
  }
96
- export function buildInterchainAccountApp(multiProvider, chain, config) {
97
+ export async function buildInterchainAccountApp(multiProvider, chain, config, registry) {
97
98
  if (!config.localRouter) {
98
99
  throw new Error('localRouter is required for account deployment');
99
100
  }
101
+ let remoteIcaAddresses;
102
+ const localChainAddresses = await registry.getChainAddresses(chain);
103
+ // if the user specified a custom router address we need to retrieve the remote ica addresses
104
+ // configured on the user provided router, otherwise we use the ones defined in the registry
105
+ if (localChainAddresses?.interchainAccountRouter &&
106
+ eqAddress(config.localRouter, localChainAddresses.interchainAccountRouter)) {
107
+ const addressByChain = await registry.getAddresses();
108
+ remoteIcaAddresses = objMap(addressByChain, (_, chainAddresses) => ({
109
+ interchainAccountRouter: chainAddresses.interchainAccountRouter,
110
+ }));
111
+ }
112
+ else {
113
+ const currentIca = InterchainAccountRouter__factory.connect(config.localRouter, multiProvider.getSigner(chain));
114
+ const knownDomains = await currentIca.domains();
115
+ remoteIcaAddresses = await promiseObjAll(objMap(arrayToObject(knownDomains.map(String)), async (domainId) => {
116
+ const routerAddress = await currentIca.routers(domainId);
117
+ return { interchainAccountRouter: bytes32ToAddress(routerAddress) };
118
+ }));
119
+ }
120
+ // remove the undefined or 0 addresses values
121
+ remoteIcaAddresses = objFilter(remoteIcaAddresses, (_chainId, chainAddresses) => !!chainAddresses.interchainAccountRouter &&
122
+ !isZeroishAddress(chainAddresses.interchainAccountRouter));
100
123
  const addressesMap = {
101
- [chain]: { interchainAccountRouter: config.localRouter },
124
+ [chain]: {
125
+ interchainAccountRouter: config.localRouter,
126
+ },
127
+ ...remoteIcaAddresses,
102
128
  };
103
129
  return InterchainAccount.fromAddressesMap(addressesMap, multiProvider);
104
130
  }
105
- export async function deployInterchainAccount(multiProvider, chain, config) {
106
- const interchainAccountApp = buildInterchainAccountApp(multiProvider, chain, config);
131
+ export async function deployInterchainAccount(multiProvider, chain, config, registry) {
132
+ const interchainAccountApp = await buildInterchainAccountApp(multiProvider, chain, config, registry);
107
133
  return interchainAccountApp.deployAccount(chain, config);
108
134
  }
109
135
  export function encodeIcaCalls(calls, salt) {
@@ -1 +1 @@
1
- {"version":3,"file":"InterchainAccount.js","sourceRoot":"","sources":["../../../src/middleware/account/InterchainAccount.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InterchainAccount.js","sourceRoot":"","sources":["../../../src/middleware/account/InterchainAccount.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { IRegistry } from '@hyperlane-xyz/registry';
2
+ import { Address, ProtocolType } from '@hyperlane-xyz/utils';
3
+ import { InterchainAccount } from '../../../middleware/account/InterchainAccount.js';
4
+ import { MultiProvider } from '../../MultiProvider.js';
5
+ import { AnnotatedEV5Transaction, ProtocolTypedReceipt } from '../../ProviderType.js';
6
+ import { TxSubmitterInterface } from './TxSubmitterInterface.js';
7
+ import { TxSubmitterType } from './TxSubmitterTypes.js';
8
+ import { EvmIcaTxSubmitterProps } from './types.js';
9
+ type EvmIcaTxSubmitterConstructorConfig = Omit<EvmIcaTxSubmitterProps, 'internalSubmitter' | 'type'> & {
10
+ originInterchainAccountRouter: Address;
11
+ };
12
+ export declare class EvmIcaTxSubmitter implements TxSubmitterInterface<ProtocolType.Ethereum> {
13
+ protected readonly config: EvmIcaTxSubmitterConstructorConfig;
14
+ protected readonly submitter: TxSubmitterInterface<ProtocolType.Ethereum>;
15
+ protected readonly multiProvider: MultiProvider;
16
+ protected readonly interchainAccountApp: InterchainAccount;
17
+ readonly txSubmitterType: TxSubmitterType;
18
+ protected constructor(config: EvmIcaTxSubmitterConstructorConfig, submitter: TxSubmitterInterface<ProtocolType.Ethereum>, multiProvider: MultiProvider, interchainAccountApp: InterchainAccount);
19
+ static fromConfig(config: EvmIcaTxSubmitterProps, multiProvider: MultiProvider, registry: Readonly<IRegistry>): Promise<EvmIcaTxSubmitter>;
20
+ submit(...txs: AnnotatedEV5Transaction[]): Promise<void | ProtocolTypedReceipt<ProtocolType.Ethereum>['receipt'] | ProtocolTypedReceipt<ProtocolType.Ethereum>['receipt'][]>;
21
+ }
22
+ export {};
23
+ //# sourceMappingURL=IcaTxSubmitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IcaTxSubmitter.d.ts","sourceRoot":"","sources":["../../../../src/providers/transactions/submitter/IcaTxSubmitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,YAAY,EAAU,MAAM,sBAAsB,CAAC;AAErE,OAAO,EACL,iBAAiB,EAElB,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpD,KAAK,kCAAkC,GAAG,IAAI,CAC5C,sBAAsB,EACtB,mBAAmB,GAAG,MAAM,CAC7B,GAAG;IACF,6BAA6B,EAAE,OAAO,CAAC;CACxC,CAAC;AAEF,qBAAa,iBACX,YAAW,oBAAoB,CAAC,YAAY,CAAC,QAAQ,CAAC;IAMpD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,kCAAkC;IAC7D,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,oBAAoB,CAAC,YAAY,CAAC,QAAQ,CAAC;IACzE,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa;IAC/C,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,iBAAiB;IAP5D,QAAQ,CAAC,eAAe,EAAE,eAAe,CACJ;IAErC,SAAS,aACY,MAAM,EAAE,kCAAkC,EAC1C,SAAS,EAAE,oBAAoB,CAAC,YAAY,CAAC,QAAQ,CAAC,EACtD,aAAa,EAAE,aAAa,EAC5B,oBAAoB,EAAE,iBAAiB;WAG/C,UAAU,CACrB,MAAM,EAAE,sBAAsB,EAC9B,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,GAC5B,OAAO,CAAC,iBAAiB,CAAC;IA2CvB,MAAM,CACV,GAAG,GAAG,EAAE,uBAAuB,EAAE,GAChC,OAAO,CACN,IAAI,GACJ,oBAAoB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,GACtD,oBAAoB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,EAAE,CAC3D;CAsDF"}
@@ -0,0 +1,76 @@
1
+ import { assert } from '@hyperlane-xyz/utils';
2
+ import { buildInterchainAccountApp, } from '../../../middleware/account/InterchainAccount.js';
3
+ import { TxSubmitterType } from './TxSubmitterTypes.js';
4
+ import { getSubmitter } from './submitterBuilderGetter.js';
5
+ export class EvmIcaTxSubmitter {
6
+ config;
7
+ submitter;
8
+ multiProvider;
9
+ interchainAccountApp;
10
+ txSubmitterType = TxSubmitterType.INTERCHAIN_ACCOUNT;
11
+ constructor(config, submitter, multiProvider, interchainAccountApp) {
12
+ this.config = config;
13
+ this.submitter = submitter;
14
+ this.multiProvider = multiProvider;
15
+ this.interchainAccountApp = interchainAccountApp;
16
+ }
17
+ static async fromConfig(config, multiProvider, registry) {
18
+ const chainAddresses = await registry.getChainAddresses(config.chain);
19
+ const interchainAccountRouterAddress = config.originInterchainAccountRouter ??
20
+ chainAddresses?.interchainAccountRouter;
21
+ assert(interchainAccountRouterAddress, `Origin chain InterchainAccountRouter address not supplied and none found in the registry metadata for chain ${config.chain}`);
22
+ const internalSubmitter = await getSubmitter(multiProvider, config.internalSubmitter, registry);
23
+ const interchainAccountApp = await buildInterchainAccountApp(multiProvider, config.chain, {
24
+ owner: config.owner,
25
+ origin: config.chain,
26
+ localRouter: interchainAccountRouterAddress,
27
+ ismOverride: config.interchainSecurityModule,
28
+ }, registry);
29
+ return new EvmIcaTxSubmitter({
30
+ owner: config.owner,
31
+ chain: config.chain,
32
+ destinationChain: config.destinationChain,
33
+ originInterchainAccountRouter: interchainAccountRouterAddress,
34
+ }, internalSubmitter, multiProvider, interchainAccountApp);
35
+ }
36
+ async submit(...txs) {
37
+ if (txs.length === 0) {
38
+ return [];
39
+ }
40
+ const transactionChains = new Set(txs.map((tx) => tx.chainId));
41
+ if (transactionChains.size !== 1) {
42
+ throw new Error('ICA transactions should have all the same destination chain');
43
+ }
44
+ const [domainId] = transactionChains.values();
45
+ if (!domainId) {
46
+ throw new Error('Destination domain for ICA transactions should be defined');
47
+ }
48
+ const chainName = this.multiProvider.getChainName(domainId);
49
+ if (chainName !== this.config.destinationChain) {
50
+ throw new Error(`Destination chain mismatch expected ${this.config.destinationChain} but received ${chainName}`);
51
+ }
52
+ const innerCalls = txs.map(({ to, data, chainId, value }) => {
53
+ assert(chainId, 'Invalid PopulatedTransaction: "chainId" is required');
54
+ assert(to, 'Invalid PopulatedTransaction: "to" is required');
55
+ assert(data, 'Invalid PopulatedTransaction: "data" is required');
56
+ return { data, to, value: value?.toString() };
57
+ });
58
+ const icaTx = await this.interchainAccountApp.getCallRemote({
59
+ chain: this.config.chain,
60
+ destination: this.config.destinationChain,
61
+ innerCalls,
62
+ config: {
63
+ origin: this.config.chain,
64
+ owner: this.config.owner,
65
+ ismOverride: this.config.interchainSecurityModule,
66
+ routerOverride: this.config.destinationInterchainAccountRouter,
67
+ localRouter: this.config.originInterchainAccountRouter,
68
+ },
69
+ });
70
+ return this.submitter.submit({
71
+ chainId: this.multiProvider.getDomainId(this.config.chain),
72
+ ...icaTx,
73
+ });
74
+ }
75
+ }
76
+ //# sourceMappingURL=IcaTxSubmitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IcaTxSubmitter.js","sourceRoot":"","sources":["../../../../src/providers/transactions/submitter/IcaTxSubmitter.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ export declare enum TxSubmitterType {
2
2
  JSON_RPC = "jsonRpc",
3
3
  IMPERSONATED_ACCOUNT = "impersonatedAccount",
4
4
  GNOSIS_SAFE = "gnosisSafe",
5
- GNOSIS_TX_BUILDER = "gnosisSafeTxBuilder"
5
+ GNOSIS_TX_BUILDER = "gnosisSafeTxBuilder",
6
+ INTERCHAIN_ACCOUNT = "interchainAccount"
6
7
  }
7
8
  //# sourceMappingURL=TxSubmitterTypes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TxSubmitterTypes.d.ts","sourceRoot":"","sources":["../../../../src/providers/transactions/submitter/TxSubmitterTypes.ts"],"names":[],"mappings":"AAAA,oBAAY,eAAe;IACzB,QAAQ,YAAY;IACpB,oBAAoB,wBAAwB;IAC5C,WAAW,eAAe;IAC1B,iBAAiB,wBAAwB;CAC1C"}
1
+ {"version":3,"file":"TxSubmitterTypes.d.ts","sourceRoot":"","sources":["../../../../src/providers/transactions/submitter/TxSubmitterTypes.ts"],"names":[],"mappings":"AAAA,oBAAY,eAAe;IACzB,QAAQ,YAAY;IACpB,oBAAoB,wBAAwB;IAC5C,WAAW,eAAe;IAC1B,iBAAiB,wBAAwB;IACzC,kBAAkB,sBAAsB;CACzC"}
@@ -4,5 +4,6 @@ export var TxSubmitterType;
4
4
  TxSubmitterType["IMPERSONATED_ACCOUNT"] = "impersonatedAccount";
5
5
  TxSubmitterType["GNOSIS_SAFE"] = "gnosisSafe";
6
6
  TxSubmitterType["GNOSIS_TX_BUILDER"] = "gnosisSafeTxBuilder";
7
+ TxSubmitterType["INTERCHAIN_ACCOUNT"] = "interchainAccount";
7
8
  })(TxSubmitterType || (TxSubmitterType = {}));
8
9
  //# sourceMappingURL=TxSubmitterTypes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TxSubmitterTypes.js","sourceRoot":"","sources":["../../../../src/providers/transactions/submitter/TxSubmitterTypes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,eAKX;AALD,WAAY,eAAe;IACzB,uCAAoB,CAAA;IACpB,+DAA4C,CAAA;IAC5C,6CAA0B,CAAA;IAC1B,4DAAyC,CAAA;AAC3C,CAAC,EALW,eAAe,KAAf,eAAe,QAK1B"}
1
+ {"version":3,"file":"TxSubmitterTypes.js","sourceRoot":"","sources":["../../../../src/providers/transactions/submitter/TxSubmitterTypes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,eAMX;AAND,WAAY,eAAe;IACzB,uCAAoB,CAAA;IACpB,+DAA4C,CAAA;IAC5C,6CAA0B,CAAA;IAC1B,4DAAyC,CAAA;IACzC,2DAAwC,CAAA;AAC1C,CAAC,EANW,eAAe,KAAf,eAAe,QAM1B"}
@@ -1,7 +1,6 @@
1
1
  import { Logger } from 'pino';
2
2
  import { Annotated, ProtocolType } from '@hyperlane-xyz/utils';
3
3
  import { ProtocolTypedReceipt, ProtocolTypedTransaction } from '../../../ProviderType.js';
4
- import { TxTransformerInterface } from '../../transformer/TxTransformerInterface.js';
5
4
  import { TxSubmitterInterface } from '../TxSubmitterInterface.js';
6
5
  import { TxSubmitterType } from '../TxSubmitterTypes.js';
7
6
  /**
@@ -11,8 +10,6 @@ import { TxSubmitterType } from '../TxSubmitterTypes.js';
11
10
  * const eV5builder = new TxSubmitterBuilder<EV5Transaction, EV5TransactionReceipt>();
12
11
  * let txReceipts = eV5builder.for(
13
12
  * new EV5GnosisSafeTxSubmitter(chainA)
14
- * ).transform(
15
- * EV5InterchainAccountTxTransformer(chainB)
16
13
  * ).submit(
17
14
  * txs
18
15
  * );
@@ -25,20 +22,14 @@ import { TxSubmitterType } from '../TxSubmitterTypes.js';
25
22
  */
26
23
  export declare class TxSubmitterBuilder<TProtocol extends ProtocolType> implements TxSubmitterInterface<TProtocol> {
27
24
  private currentSubmitter;
28
- private currentTransformers;
29
25
  readonly txSubmitterType: TxSubmitterType;
30
26
  protected readonly logger: Logger;
31
- constructor(currentSubmitter: TxSubmitterInterface<TProtocol>, currentTransformers?: TxTransformerInterface<TProtocol>[]);
27
+ constructor(currentSubmitter: TxSubmitterInterface<TProtocol>);
32
28
  /**
33
29
  * Sets the current submitter for the builder.
34
30
  * @param txSubmitterOrType The submitter to add to the builder
35
31
  */
36
32
  for(txSubmitter: TxSubmitterInterface<TProtocol>): TxSubmitterBuilder<TProtocol>;
37
- /**
38
- * Adds a transformer for the builder.
39
- * @param txTransformerOrType The transformer to add to the builder
40
- */
41
- transform(...txTransformers: TxTransformerInterface<TProtocol>[]): TxSubmitterBuilder<TProtocol>;
42
33
  /**
43
34
  * Submits a set of transactions to the builder.
44
35
  * @param txs The transactions to submit
@@ -1 +1 @@
1
- {"version":3,"file":"TxSubmitterBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/providers/transactions/submitter/builder/TxSubmitterBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,OAAO,EAAE,SAAS,EAAE,YAAY,EAAc,MAAM,sBAAsB,CAAC;AAE3E,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,kBAAkB,CAAC,SAAS,SAAS,YAAY,CAC5D,YAAW,oBAAoB,CAAC,SAAS,CAAC;IASxC,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,mBAAmB;IAR7B,SAAgB,eAAe,EAAE,eAAe,CAAC;IAEjD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAE9B;gBAGO,gBAAgB,EAAE,oBAAoB,CAAC,SAAS,CAAC,EACjD,mBAAmB,GAAE,sBAAsB,CAAC,SAAS,CAAC,EAAO;IAKvE;;;OAGG;IACI,GAAG,CACR,WAAW,EAAE,oBAAoB,CAAC,SAAS,CAAC,GAC3C,kBAAkB,CAAC,SAAS,CAAC;IAKhC;;;OAGG;IACI,SAAS,CACd,GAAG,cAAc,EAAE,sBAAsB,CAAC,SAAS,CAAC,EAAE,GACrD,kBAAkB,CAAC,SAAS,CAAC;IAKhC;;;OAGG;IACU,MAAM,CACjB,GAAG,GAAG,EAAE,SAAS,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,GACtE,OAAO,CACN,oBAAoB,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAC1C,oBAAoB,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,EAAE,GAC5C,IAAI,CACP;CAoBF"}
1
+ {"version":3,"file":"TxSubmitterBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/providers/transactions/submitter/builder/TxSubmitterBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,OAAO,EAAE,SAAS,EAAE,YAAY,EAAc,MAAM,sBAAsB,CAAC;AAE3E,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,kBAAkB,CAAC,SAAS,SAAS,YAAY,CAC5D,YAAW,oBAAoB,CAAC,SAAS,CAAC;IAQ9B,OAAO,CAAC,gBAAgB;IANpC,SAAgB,eAAe,EAAE,eAAe,CAAC;IAEjD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAE9B;gBAEiB,gBAAgB,EAAE,oBAAoB,CAAC,SAAS,CAAC;IAIrE;;;OAGG;IACI,GAAG,CACR,WAAW,EAAE,oBAAoB,CAAC,SAAS,CAAC,GAC3C,kBAAkB,CAAC,SAAS,CAAC;IAKhC;;;OAGG;IACU,MAAM,CACjB,GAAG,GAAG,EAAE,SAAS,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,GACtE,OAAO,CACN,oBAAoB,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAC1C,oBAAoB,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,EAAE,GAC5C,IAAI,CACP;CAYF"}
@@ -6,8 +6,6 @@ import { rootLogger } from '@hyperlane-xyz/utils';
6
6
  * const eV5builder = new TxSubmitterBuilder<EV5Transaction, EV5TransactionReceipt>();
7
7
  * let txReceipts = eV5builder.for(
8
8
  * new EV5GnosisSafeTxSubmitter(chainA)
9
- * ).transform(
10
- * EV5InterchainAccountTxTransformer(chainB)
11
9
  * ).submit(
12
10
  * txs
13
11
  * );
@@ -20,14 +18,12 @@ import { rootLogger } from '@hyperlane-xyz/utils';
20
18
  */
21
19
  export class TxSubmitterBuilder {
22
20
  currentSubmitter;
23
- currentTransformers;
24
21
  txSubmitterType;
25
22
  logger = rootLogger.child({
26
23
  module: 'submitter-builder',
27
24
  });
28
- constructor(currentSubmitter, currentTransformers = []) {
25
+ constructor(currentSubmitter) {
29
26
  this.currentSubmitter = currentSubmitter;
30
- this.currentTransformers = currentTransformers;
31
27
  this.txSubmitterType = this.currentSubmitter.txSubmitterType;
32
28
  }
33
29
  /**
@@ -38,27 +34,14 @@ export class TxSubmitterBuilder {
38
34
  this.currentSubmitter = txSubmitter;
39
35
  return this;
40
36
  }
41
- /**
42
- * Adds a transformer for the builder.
43
- * @param txTransformerOrType The transformer to add to the builder
44
- */
45
- transform(...txTransformers) {
46
- this.currentTransformers = txTransformers;
47
- return this;
48
- }
49
37
  /**
50
38
  * Submits a set of transactions to the builder.
51
39
  * @param txs The transactions to submit
52
40
  */
53
41
  async submit(...txs) {
54
42
  this.logger.debug(`Submitting ${txs.length} transactions to the ${this.currentSubmitter.txSubmitterType} submitter...`);
55
- let transformedTxs = txs;
56
- for (const currentTransformer of this.currentTransformers) {
57
- transformedTxs = await currentTransformer.transform(...transformedTxs);
58
- this.logger.debug(`🔄 Transformed ${transformedTxs.length} transactions with the ${currentTransformer.txTransformerType} transformer...`);
59
- }
60
- const txReceipts = await this.currentSubmitter.submit(...transformedTxs);
61
- this.logger.debug(`✅ Successfully submitted ${transformedTxs.length} transactions to the ${this.currentSubmitter.txSubmitterType} submitter.`);
43
+ const txReceipts = await this.currentSubmitter.submit(...txs);
44
+ this.logger.debug(`✅ Successfully submitted ${txs.length} transactions to the ${this.currentSubmitter.txSubmitterType} submitter.`);
62
45
  return txReceipts;
63
46
  }
64
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TxSubmitterBuilder.js","sourceRoot":"","sources":["../../../../../src/providers/transactions/submitter/builder/TxSubmitterBuilder.ts"],"names":[],"mappings":"AAEA,OAAO,EAA2B,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAU3E;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,kBAAkB;IAUnB;IACA;IARM,eAAe,CAAkB;IAE9B,MAAM,GAAW,UAAU,CAAC,KAAK,CAAC;QACnD,MAAM,EAAE,mBAAmB;KAC5B,CAAC,CAAC;IAEH,YACU,gBAAiD,EACjD,sBAA2D,EAAE;QAD7D,qBAAgB,GAAhB,gBAAgB,CAAiC;QACjD,wBAAmB,GAAnB,mBAAmB,CAA0C;QAErE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC;IAC/D,CAAC;IAED;;;OAGG;IACI,GAAG,CACR,WAA4C;QAE5C,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACI,SAAS,CACd,GAAG,cAAmD;QAEtD,IAAI,CAAC,mBAAmB,GAAG,cAAc,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,MAAM,CACjB,GAAG,GAAoE;QAMvE,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,cAAc,GAAG,CAAC,MAAM,wBAAwB,IAAI,CAAC,gBAAgB,CAAC,eAAe,eAAe,CACrG,CAAC;QAEF,IAAI,cAAc,GAAG,GAAG,CAAC;QACzB,KAAK,MAAM,kBAAkB,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC1D,cAAc,GAAG,MAAM,kBAAkB,CAAC,SAAS,CAAC,GAAG,cAAc,CAAC,CAAC;YACvE,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,kBAAkB,cAAc,CAAC,MAAM,0BAA0B,kBAAkB,CAAC,iBAAiB,iBAAiB,CACvH,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC;QACzE,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,4BAA4B,cAAc,CAAC,MAAM,wBAAwB,IAAI,CAAC,gBAAgB,CAAC,eAAe,aAAa,CAC5H,CAAC;QAEF,OAAO,UAAU,CAAC;IACpB,CAAC;CACF"}
1
+ {"version":3,"file":"TxSubmitterBuilder.js","sourceRoot":"","sources":["../../../../../src/providers/transactions/submitter/builder/TxSubmitterBuilder.ts"],"names":[],"mappings":"AAEA,OAAO,EAA2B,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAS3E;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,kBAAkB;IAST;IANJ,eAAe,CAAkB;IAE9B,MAAM,GAAW,UAAU,CAAC,KAAK,CAAC;QACnD,MAAM,EAAE,mBAAmB;KAC5B,CAAC,CAAC;IAEH,YAAoB,gBAAiD;QAAjD,qBAAgB,GAAhB,gBAAgB,CAAiC;QACnE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC;IAC/D,CAAC;IAED;;;OAGG;IACI,GAAG,CACR,WAA4C;QAE5C,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,MAAM,CACjB,GAAG,GAAoE;QAMvE,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,cAAc,GAAG,CAAC,MAAM,wBAAwB,IAAI,CAAC,gBAAgB,CAAC,eAAe,eAAe,CACrG,CAAC;QAEF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;QAC9D,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,4BAA4B,GAAG,CAAC,MAAM,wBAAwB,IAAI,CAAC,gBAAgB,CAAC,eAAe,aAAa,CACjH,CAAC;QAEF,OAAO,UAAU,CAAC;IACpB,CAAC;CACF"}