@hyperlane-xyz/sdk 31.0.1 → 31.2.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 (289) hide show
  1. package/README.md +1 -1
  2. package/dist/app/MultiProtocolApp.d.ts +7 -7
  3. package/dist/app/MultiProtocolApp.d.ts.map +1 -1
  4. package/dist/app/MultiProtocolApp.js +2 -2
  5. package/dist/app/MultiProtocolApp.js.map +1 -1
  6. package/dist/core/MultiProtocolCore.d.ts +4 -4
  7. package/dist/core/MultiProtocolCore.d.ts.map +1 -1
  8. package/dist/core/MultiProtocolCore.js.map +1 -1
  9. package/dist/core/adapters/AleoCoreAdapter.d.ts +3 -3
  10. package/dist/core/adapters/AleoCoreAdapter.d.ts.map +1 -1
  11. package/dist/core/adapters/AleoCoreAdapter.js.map +1 -1
  12. package/dist/core/adapters/CosmNativeCoreAdapter.d.ts +3 -3
  13. package/dist/core/adapters/CosmNativeCoreAdapter.d.ts.map +1 -1
  14. package/dist/core/adapters/CosmNativeCoreAdapter.js.map +1 -1
  15. package/dist/core/adapters/CosmWasmCoreAdapter.d.ts +3 -3
  16. package/dist/core/adapters/CosmWasmCoreAdapter.d.ts.map +1 -1
  17. package/dist/core/adapters/CosmWasmCoreAdapter.js.map +1 -1
  18. package/dist/core/adapters/CosmWasmIgpAdapter.d.ts +3 -3
  19. package/dist/core/adapters/CosmWasmIgpAdapter.d.ts.map +1 -1
  20. package/dist/core/adapters/CosmWasmIgpAdapter.js.map +1 -1
  21. package/dist/core/adapters/EvmCoreAdapter.d.ts +3 -3
  22. package/dist/core/adapters/EvmCoreAdapter.d.ts.map +1 -1
  23. package/dist/core/adapters/EvmCoreAdapter.js.map +1 -1
  24. package/dist/core/adapters/RadixCoreAdapter.d.ts +3 -3
  25. package/dist/core/adapters/RadixCoreAdapter.d.ts.map +1 -1
  26. package/dist/core/adapters/RadixCoreAdapter.js.map +1 -1
  27. package/dist/core/adapters/SealevelCoreAdapter.d.ts +3 -3
  28. package/dist/core/adapters/SealevelCoreAdapter.d.ts.map +1 -1
  29. package/dist/core/adapters/SealevelCoreAdapter.js.map +1 -1
  30. package/dist/core/adapters/StarknetCoreAdapter.d.ts +3 -3
  31. package/dist/core/adapters/StarknetCoreAdapter.d.ts.map +1 -1
  32. package/dist/core/adapters/StarknetCoreAdapter.js.map +1 -1
  33. package/dist/deploy/verify/ContractVerifier.d.ts.map +1 -1
  34. package/dist/deploy/verify/ContractVerifier.js +12 -4
  35. package/dist/deploy/verify/ContractVerifier.js.map +1 -1
  36. package/dist/fork/types.d.ts +64 -64
  37. package/dist/gas/adapters/SealevelIgpAdapter.d.ts +7 -7
  38. package/dist/gas/adapters/SealevelIgpAdapter.d.ts.map +1 -1
  39. package/dist/gas/adapters/SealevelIgpAdapter.js.map +1 -1
  40. package/dist/gas/utils.d.ts +2 -2
  41. package/dist/gas/utils.d.ts.map +1 -1
  42. package/dist/gas/utils.js.map +1 -1
  43. package/dist/index.d.ts +4 -3
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +3 -2
  46. package/dist/index.js.map +1 -1
  47. package/dist/ism/adapters/CosmWasmMultisigAdapter.d.ts +3 -3
  48. package/dist/ism/adapters/CosmWasmMultisigAdapter.d.ts.map +1 -1
  49. package/dist/ism/adapters/CosmWasmMultisigAdapter.js.map +1 -1
  50. package/dist/ism/adapters/SealevelMultisigAdapter.d.ts +3 -3
  51. package/dist/ism/adapters/SealevelMultisigAdapter.d.ts.map +1 -1
  52. package/dist/ism/adapters/SealevelMultisigAdapter.js.map +1 -1
  53. package/dist/metadata/ChainMetadataResolver.d.ts +13 -0
  54. package/dist/metadata/ChainMetadataResolver.d.ts.map +1 -0
  55. package/dist/metadata/ChainMetadataResolver.js +68 -0
  56. package/dist/metadata/ChainMetadataResolver.js.map +1 -0
  57. package/dist/metadata/ChainMetadataResolver.test.d.ts +2 -0
  58. package/dist/metadata/ChainMetadataResolver.test.d.ts.map +1 -0
  59. package/dist/metadata/ChainMetadataResolver.test.js +83 -0
  60. package/dist/metadata/ChainMetadataResolver.test.js.map +1 -0
  61. package/dist/providers/MinimalProviderRegistry.d.ts +41 -0
  62. package/dist/providers/MinimalProviderRegistry.d.ts.map +1 -0
  63. package/dist/providers/MinimalProviderRegistry.js +122 -0
  64. package/dist/providers/MinimalProviderRegistry.js.map +1 -0
  65. package/dist/providers/MultiProtocolProvider.d.ts +13 -55
  66. package/dist/providers/MultiProtocolProvider.d.ts.map +1 -1
  67. package/dist/providers/MultiProtocolProvider.js +34 -152
  68. package/dist/providers/MultiProtocolProvider.js.map +1 -1
  69. package/dist/providers/MultiProtocolProvider.test.js +48 -0
  70. package/dist/providers/MultiProtocolProvider.test.js.map +1 -1
  71. package/dist/providers/MultiProvider.d.ts +1 -1
  72. package/dist/providers/MultiProvider.d.ts.map +1 -1
  73. package/dist/providers/MultiProvider.js +3 -1
  74. package/dist/providers/MultiProvider.js.map +1 -1
  75. package/dist/providers/MultiProvider.test.js +3 -3
  76. package/dist/providers/MultiProvider.test.js.map +1 -1
  77. package/dist/providers/MultiProviderAdapter.d.ts +31 -0
  78. package/dist/providers/MultiProviderAdapter.d.ts.map +1 -0
  79. package/dist/providers/MultiProviderAdapter.js +116 -0
  80. package/dist/providers/MultiProviderAdapter.js.map +1 -0
  81. package/dist/providers/ProviderType.d.ts +12 -7
  82. package/dist/providers/ProviderType.d.ts.map +1 -1
  83. package/dist/providers/ProviderType.js +1 -1
  84. package/dist/providers/ProviderType.js.map +1 -1
  85. package/dist/providers/builders/aleo.d.ts +4 -0
  86. package/dist/providers/builders/aleo.d.ts.map +1 -0
  87. package/dist/providers/builders/aleo.js +7 -0
  88. package/dist/providers/builders/aleo.js.map +1 -0
  89. package/dist/providers/builders/cosmos.d.ts +6 -0
  90. package/dist/providers/builders/cosmos.d.ts.map +1 -0
  91. package/dist/providers/builders/cosmos.js +27 -0
  92. package/dist/providers/builders/cosmos.js.map +1 -0
  93. package/dist/providers/builders/ethersV5.d.ts +8 -0
  94. package/dist/providers/builders/ethersV5.d.ts.map +1 -0
  95. package/dist/providers/builders/ethersV5.js +25 -0
  96. package/dist/providers/builders/ethersV5.js.map +1 -0
  97. package/dist/providers/builders/radix.d.ts +4 -0
  98. package/dist/providers/builders/radix.d.ts.map +1 -0
  99. package/dist/providers/builders/radix.js +14 -0
  100. package/dist/providers/builders/radix.js.map +1 -0
  101. package/dist/providers/builders/solana.d.ts +4 -0
  102. package/dist/providers/builders/solana.d.ts.map +1 -0
  103. package/dist/providers/builders/solana.js +11 -0
  104. package/dist/providers/builders/solana.js.map +1 -0
  105. package/dist/providers/builders/starknet.d.ts +4 -0
  106. package/dist/providers/builders/starknet.d.ts.map +1 -0
  107. package/dist/providers/builders/starknet.js +14 -0
  108. package/dist/providers/builders/starknet.js.map +1 -0
  109. package/dist/providers/builders/tron.d.ts +10 -0
  110. package/dist/providers/builders/tron.d.ts.map +1 -0
  111. package/dist/providers/builders/tron.js +19 -0
  112. package/dist/providers/builders/tron.js.map +1 -0
  113. package/dist/providers/builders/types.d.ts +6 -0
  114. package/dist/providers/builders/types.d.ts.map +1 -0
  115. package/dist/providers/builders/types.js +2 -0
  116. package/dist/providers/builders/types.js.map +1 -0
  117. package/dist/providers/builders/viem.d.ts +4 -0
  118. package/dist/providers/builders/viem.d.ts.map +1 -0
  119. package/dist/providers/builders/viem.js +24 -0
  120. package/dist/providers/builders/viem.js.map +1 -0
  121. package/dist/providers/builders/zksync.d.ts +7 -0
  122. package/dist/providers/builders/zksync.d.ts.map +1 -0
  123. package/dist/providers/builders/zksync.js +13 -0
  124. package/dist/providers/builders/zksync.js.map +1 -0
  125. package/dist/providers/defaultProviderBuilderMaps.d.ts +7 -0
  126. package/dist/providers/defaultProviderBuilderMaps.d.ts.map +1 -0
  127. package/dist/providers/defaultProviderBuilderMaps.js +36 -0
  128. package/dist/providers/defaultProviderBuilderMaps.js.map +1 -0
  129. package/dist/providers/providerBuilders.d.ts +11 -29
  130. package/dist/providers/providerBuilders.d.ts.map +1 -1
  131. package/dist/providers/providerBuilders.js +10 -153
  132. package/dist/providers/providerBuilders.js.map +1 -1
  133. package/dist/providers/rpcHealthTest.js +1 -1
  134. package/dist/providers/rpcHealthTest.js.map +1 -1
  135. package/dist/providers/runtime/evm.d.ts +3 -0
  136. package/dist/providers/runtime/evm.d.ts.map +1 -0
  137. package/dist/providers/runtime/evm.js +11 -0
  138. package/dist/providers/runtime/evm.js.map +1 -0
  139. package/dist/router/MultiProtocolRouterApps.test.js.map +1 -1
  140. package/dist/router/adapters/EvmRouterAdapter.d.ts +3 -3
  141. package/dist/router/adapters/EvmRouterAdapter.d.ts.map +1 -1
  142. package/dist/router/adapters/EvmRouterAdapter.js.map +1 -1
  143. package/dist/router/adapters/SealevelRouterAdapter.d.ts +3 -3
  144. package/dist/router/adapters/SealevelRouterAdapter.d.ts.map +1 -1
  145. package/dist/router/adapters/SealevelRouterAdapter.js.map +1 -1
  146. package/dist/signers/cosmos/cosmjs.d.ts +2 -2
  147. package/dist/signers/cosmos/cosmjs.d.ts.map +1 -1
  148. package/dist/signers/cosmos/cosmjs.js.map +1 -1
  149. package/dist/signers/evm/ethersv5.d.ts +2 -2
  150. package/dist/signers/evm/ethersv5.d.ts.map +1 -1
  151. package/dist/signers/evm/ethersv5.js +1 -1
  152. package/dist/signers/evm/ethersv5.js.map +1 -1
  153. package/dist/signers/radix/radix-toolkit.d.ts +3 -3
  154. package/dist/signers/radix/radix-toolkit.d.ts.map +1 -1
  155. package/dist/signers/radix/radix-toolkit.js +1 -1
  156. package/dist/signers/radix/radix-toolkit.js.map +1 -1
  157. package/dist/signers/signers.d.ts +2 -2
  158. package/dist/signers/signers.d.ts.map +1 -1
  159. package/dist/signers/signers.js.map +1 -1
  160. package/dist/signers/starknet/starknetjs.d.ts +2 -2
  161. package/dist/signers/starknet/starknetjs.d.ts.map +1 -1
  162. package/dist/signers/starknet/starknetjs.js.map +1 -1
  163. package/dist/signers/svm/solana-web3js.d.ts +2 -2
  164. package/dist/signers/svm/solana-web3js.d.ts.map +1 -1
  165. package/dist/signers/svm/solana-web3js.js.map +1 -1
  166. package/dist/token/IToken.d.ts +14 -151
  167. package/dist/token/IToken.d.ts.map +1 -1
  168. package/dist/token/IToken.js +1 -43
  169. package/dist/token/IToken.js.map +1 -1
  170. package/dist/token/ITokenMetadata.d.ts +182 -0
  171. package/dist/token/ITokenMetadata.d.ts.map +1 -0
  172. package/dist/token/ITokenMetadata.js +46 -0
  173. package/dist/token/ITokenMetadata.js.map +1 -0
  174. package/dist/token/Token.d.ts +15 -49
  175. package/dist/token/Token.d.ts.map +1 -1
  176. package/dist/token/Token.js +48 -312
  177. package/dist/token/Token.js.map +1 -1
  178. package/dist/token/Token.test.js +52 -10
  179. package/dist/token/Token.test.js.map +1 -1
  180. package/dist/token/TokenAmount.d.ts +6 -6
  181. package/dist/token/TokenAmount.d.ts.map +1 -1
  182. package/dist/token/TokenConnection.d.ts +7 -7
  183. package/dist/token/TokenConnection.d.ts.map +1 -1
  184. package/dist/token/TokenConnection.js +1 -1
  185. package/dist/token/TokenConnection.js.map +1 -1
  186. package/dist/token/TokenConnection.test.d.ts +2 -0
  187. package/dist/token/TokenConnection.test.d.ts.map +1 -0
  188. package/dist/token/TokenConnection.test.js +17 -0
  189. package/dist/token/TokenConnection.test.js.map +1 -0
  190. package/dist/token/TokenMetadata.d.ts +42 -0
  191. package/dist/token/TokenMetadata.d.ts.map +1 -0
  192. package/dist/token/TokenMetadata.js +119 -0
  193. package/dist/token/TokenMetadata.js.map +1 -0
  194. package/dist/token/adapters/AleoTokenAdapter.d.ts +7 -6
  195. package/dist/token/adapters/AleoTokenAdapter.d.ts.map +1 -1
  196. package/dist/token/adapters/AleoTokenAdapter.js +1 -1
  197. package/dist/token/adapters/AleoTokenAdapter.js.map +1 -1
  198. package/dist/token/adapters/CosmWasmTokenAdapter.d.ts +11 -11
  199. package/dist/token/adapters/CosmWasmTokenAdapter.d.ts.map +1 -1
  200. package/dist/token/adapters/CosmWasmTokenAdapter.js.map +1 -1
  201. package/dist/token/adapters/CosmosModuleTokenAdapter.d.ts +6 -6
  202. package/dist/token/adapters/CosmosModuleTokenAdapter.d.ts.map +1 -1
  203. package/dist/token/adapters/CosmosModuleTokenAdapter.js.map +1 -1
  204. package/dist/token/adapters/CosmosTokenAdapter.d.ts +7 -7
  205. package/dist/token/adapters/CosmosTokenAdapter.d.ts.map +1 -1
  206. package/dist/token/adapters/CosmosTokenAdapter.js.map +1 -1
  207. package/dist/token/adapters/EvmCrossCollateralAdapter.d.ts +3 -3
  208. package/dist/token/adapters/EvmCrossCollateralAdapter.d.ts.map +1 -1
  209. package/dist/token/adapters/EvmCrossCollateralAdapter.js.map +1 -1
  210. package/dist/token/adapters/EvmTokenAdapter.d.ts +21 -21
  211. package/dist/token/adapters/EvmTokenAdapter.d.ts.map +1 -1
  212. package/dist/token/adapters/EvmTokenAdapter.js.map +1 -1
  213. package/dist/token/adapters/M0PortalLiteTokenAdapter.d.ts +2 -2
  214. package/dist/token/adapters/M0PortalLiteTokenAdapter.d.ts.map +1 -1
  215. package/dist/token/adapters/M0PortalLiteTokenAdapter.js.map +1 -1
  216. package/dist/token/adapters/M0PortalTokenAdapter.d.ts +2 -2
  217. package/dist/token/adapters/M0PortalTokenAdapter.d.ts.map +1 -1
  218. package/dist/token/adapters/M0PortalTokenAdapter.js.map +1 -1
  219. package/dist/token/adapters/RadixTokenAdapter.d.ts +7 -6
  220. package/dist/token/adapters/RadixTokenAdapter.d.ts.map +1 -1
  221. package/dist/token/adapters/RadixTokenAdapter.js.map +1 -1
  222. package/dist/token/adapters/SealevelTokenAdapter.d.ts +7 -7
  223. package/dist/token/adapters/SealevelTokenAdapter.d.ts.map +1 -1
  224. package/dist/token/adapters/SealevelTokenAdapter.js.map +1 -1
  225. package/dist/token/adapters/StarknetTokenAdapter.d.ts +10 -10
  226. package/dist/token/adapters/StarknetTokenAdapter.d.ts.map +1 -1
  227. package/dist/token/adapters/StarknetTokenAdapter.js.map +1 -1
  228. package/dist/token/adapters/aleoHyp.d.ts +7 -0
  229. package/dist/token/adapters/aleoHyp.d.ts.map +1 -0
  230. package/dist/token/adapters/aleoHyp.js +26 -0
  231. package/dist/token/adapters/aleoHyp.js.map +1 -0
  232. package/dist/token/adapters/cosmosHyp.d.ts +7 -0
  233. package/dist/token/adapters/cosmosHyp.d.ts.map +1 -0
  234. package/dist/token/adapters/cosmosHyp.js +40 -0
  235. package/dist/token/adapters/cosmosHyp.js.map +1 -0
  236. package/dist/token/adapters/evmHyp.d.ts +7 -0
  237. package/dist/token/adapters/evmHyp.d.ts.map +1 -0
  238. package/dist/token/adapters/evmHyp.js +23 -0
  239. package/dist/token/adapters/evmHyp.js.map +1 -0
  240. package/dist/token/adapters/evmLikeHyp.d.ts +19 -0
  241. package/dist/token/adapters/evmLikeHyp.d.ts.map +1 -0
  242. package/dist/token/adapters/evmLikeHyp.js +61 -0
  243. package/dist/token/adapters/evmLikeHyp.js.map +1 -0
  244. package/dist/token/adapters/hypTokenAdapterUtils.d.ts +15 -0
  245. package/dist/token/adapters/hypTokenAdapterUtils.d.ts.map +1 -0
  246. package/dist/token/adapters/hypTokenAdapterUtils.js +9 -0
  247. package/dist/token/adapters/hypTokenAdapterUtils.js.map +1 -0
  248. package/dist/token/adapters/radixHyp.d.ts +7 -0
  249. package/dist/token/adapters/radixHyp.d.ts.map +1 -0
  250. package/dist/token/adapters/radixHyp.js +22 -0
  251. package/dist/token/adapters/radixHyp.js.map +1 -0
  252. package/dist/token/adapters/sealevelHyp.d.ts +7 -0
  253. package/dist/token/adapters/sealevelHyp.d.ts.map +1 -0
  254. package/dist/token/adapters/sealevelHyp.js +38 -0
  255. package/dist/token/adapters/sealevelHyp.js.map +1 -0
  256. package/dist/token/adapters/starknetHyp.d.ts +7 -0
  257. package/dist/token/adapters/starknetHyp.d.ts.map +1 -0
  258. package/dist/token/adapters/starknetHyp.js +35 -0
  259. package/dist/token/adapters/starknetHyp.js.map +1 -0
  260. package/dist/token/adapters/tronHyp.d.ts +7 -0
  261. package/dist/token/adapters/tronHyp.d.ts.map +1 -0
  262. package/dist/token/adapters/tronHyp.js +23 -0
  263. package/dist/token/adapters/tronHyp.js.map +1 -0
  264. package/dist/utils/cosmos.d.ts +3 -3
  265. package/dist/utils/decimals.d.ts +8 -0
  266. package/dist/utils/decimals.d.ts.map +1 -1
  267. package/dist/utils/decimals.js +42 -0
  268. package/dist/utils/decimals.js.map +1 -1
  269. package/dist/utils/decimals.test.js +52 -1
  270. package/dist/utils/decimals.test.js.map +1 -1
  271. package/dist/warp/WarpCore.d.ts +43 -43
  272. package/dist/warp/WarpCore.d.ts.map +1 -1
  273. package/dist/warp/WarpCore.js +82 -84
  274. package/dist/warp/WarpCore.js.map +1 -1
  275. package/dist/warp/WarpCore.test.js +245 -6
  276. package/dist/warp/WarpCore.test.js.map +1 -1
  277. package/dist/warp/read.d.ts +19 -0
  278. package/dist/warp/read.d.ts.map +1 -0
  279. package/dist/warp/read.js +34 -0
  280. package/dist/warp/read.js.map +1 -0
  281. package/dist/warp/read.test.d.ts +2 -0
  282. package/dist/warp/read.test.d.ts.map +1 -0
  283. package/dist/warp/read.test.js +56 -0
  284. package/dist/warp/read.test.js.map +1 -0
  285. package/dist/warp/types.d.ts +50 -8
  286. package/dist/warp/types.d.ts.map +1 -1
  287. package/dist/zksync/ZKSyncDeployer.js +1 -1
  288. package/dist/zksync/ZKSyncDeployer.js.map +1 -1
  289. package/package.json +98 -11
@@ -1,6 +1,6 @@
1
1
  import { Logger } from 'pino';
2
2
  import { Address, HexString } from '@hyperlane-xyz/utils';
3
- import { MultiProtocolProvider } from '../providers/MultiProtocolProvider.js';
3
+ import type { MultiProviderAdapter } from '../providers/MultiProviderAdapter.js';
4
4
  import { TransactionFeeEstimate } from '../providers/transactionFeeEstimators.js';
5
5
  import { IToken } from '../token/IToken.js';
6
6
  import { Token } from '../token/Token.js';
@@ -16,7 +16,7 @@ export interface WarpCoreOptions {
16
16
  routeBlacklist?: RouteBlacklist;
17
17
  }
18
18
  export declare class WarpCore {
19
- readonly multiProvider: MultiProtocolProvider<{
19
+ readonly multiProvider: MultiProviderAdapter<{
20
20
  mailbox?: Address;
21
21
  }>;
22
22
  readonly tokens: Token[];
@@ -24,15 +24,15 @@ export declare class WarpCore {
24
24
  readonly interchainFeeConstants: FeeConstantConfig;
25
25
  readonly routeBlacklist: RouteBlacklist;
26
26
  readonly logger: Logger;
27
- constructor(multiProvider: MultiProtocolProvider<{
27
+ constructor(multiProvider: MultiProviderAdapter<{
28
28
  mailbox?: Address;
29
29
  }>, tokens: Token[], options?: WarpCoreOptions);
30
30
  /**
31
31
  * Takes the serialized representation of a warp config and returns a WarpCore instance
32
- * @param multiProvider the MultiProtocolProvider containing chain metadata
32
+ * @param multiProvider the MultiProviderAdapter containing chain metadata
33
33
  * @param config the config object of type WarpCoreConfig
34
34
  */
35
- static FromConfig(multiProvider: MultiProtocolProvider<{
35
+ static FromConfig(multiProvider: MultiProviderAdapter<{
36
36
  mailbox?: Address;
37
37
  }>, config: unknown): WarpCore;
38
38
  /**
@@ -41,14 +41,14 @@ export declare class WarpCore {
41
41
  * Sender is only required for Sealevel origins.
42
42
  */
43
43
  getInterchainTransferFee({ originTokenAmount, destination, sender, recipient, destinationToken, }: {
44
- originTokenAmount: TokenAmount;
44
+ originTokenAmount: TokenAmount<IToken>;
45
45
  destination: ChainNameOrId;
46
46
  sender?: Address;
47
47
  recipient: Address;
48
48
  destinationToken?: IToken;
49
49
  }): Promise<{
50
- igpQuote: TokenAmount;
51
- tokenFeeQuote?: TokenAmount;
50
+ igpQuote: TokenAmount<IToken>;
51
+ tokenFeeQuote?: TokenAmount<IToken>;
52
52
  }>;
53
53
  /**
54
54
  * Simulates a transfer to estimate 'local' gas fees on the origin chain
@@ -58,8 +58,8 @@ export declare class WarpCore {
58
58
  destination: ChainNameOrId;
59
59
  sender: Address;
60
60
  senderPubKey?: HexString;
61
- interchainFee?: TokenAmount;
62
- tokenFeeQuote?: TokenAmount;
61
+ interchainFee?: TokenAmount<IToken>;
62
+ tokenFeeQuote?: TokenAmount<IToken>;
63
63
  destinationToken?: IToken;
64
64
  }): Promise<TransactionFeeEstimate>;
65
65
  /**
@@ -72,21 +72,21 @@ export declare class WarpCore {
72
72
  destination: ChainNameOrId;
73
73
  sender: Address;
74
74
  senderPubKey?: HexString;
75
- interchainFee?: TokenAmount;
76
- tokenFeeQuote?: TokenAmount;
75
+ interchainFee?: TokenAmount<IToken>;
76
+ tokenFeeQuote?: TokenAmount<IToken>;
77
77
  destinationToken?: IToken;
78
- }): Promise<TokenAmount>;
78
+ }): Promise<TokenAmount<IToken>>;
79
79
  /**
80
80
  * Gets a list of populated transactions required to transfer a token to a remote chain
81
81
  * Typically just 1 transaction but sometimes more, like when an approval is required first
82
82
  */
83
83
  getTransferRemoteTxs({ originTokenAmount, destination, sender, recipient, interchainFee, tokenFeeQuote, destinationToken, quotedCalls, }: {
84
- originTokenAmount: TokenAmount;
84
+ originTokenAmount: TokenAmount<IToken>;
85
85
  destination: ChainNameOrId;
86
86
  sender: Address;
87
87
  recipient: Address;
88
- interchainFee?: TokenAmount;
89
- tokenFeeQuote?: TokenAmount;
88
+ interchainFee?: TokenAmount<IToken>;
89
+ tokenFeeQuote?: TokenAmount<IToken>;
90
90
  destinationToken?: IToken;
91
91
  /** When provided, builds an atomic QuotedCalls.execute() tx instead of separate approve+transfer */
92
92
  quotedCalls?: QuotedCallsParams;
@@ -102,7 +102,7 @@ export declare class WarpCore {
102
102
  * Same-chain: calls handle() directly on target router (atomic, no relay needed).
103
103
  */
104
104
  protected getCrossCollateralTransferTxs({ originTokenAmount, destination, sender, recipient, destinationToken, }: {
105
- originTokenAmount: TokenAmount;
105
+ originTokenAmount: TokenAmount<IToken>;
106
106
  destination: ChainNameOrId;
107
107
  sender: Address;
108
108
  recipient: Address;
@@ -112,7 +112,7 @@ export declare class WarpCore {
112
112
  * Resolve common params for QuotedCalls operations.
113
113
  */
114
114
  protected resolveQuotedCallsParams({ originTokenAmount, destination, recipient, quotedCalls, destinationToken, }: {
115
- originTokenAmount: TokenAmount;
115
+ originTokenAmount: TokenAmount<IToken>;
116
116
  destination: ChainNameOrId;
117
117
  recipient: Address;
118
118
  quotedCalls: QuotedCallsParams;
@@ -134,15 +134,15 @@ export declare class WarpCore {
134
134
  * the raw Quote[][] needed to build the execute tx.
135
135
  */
136
136
  getQuotedTransferFee({ originTokenAmount, destination, sender, recipient, quotedCalls, destinationToken, }: {
137
- originTokenAmount: TokenAmount;
137
+ originTokenAmount: TokenAmount<IToken>;
138
138
  destination: ChainNameOrId;
139
139
  sender: Address;
140
140
  recipient: Address;
141
141
  quotedCalls: QuotedCallsParams;
142
142
  destinationToken?: IToken;
143
143
  }): Promise<{
144
- igpQuote: TokenAmount;
145
- tokenFeeQuote?: TokenAmount;
144
+ igpQuote: TokenAmount<IToken>;
145
+ tokenFeeQuote?: TokenAmount<IToken>;
146
146
  /** Raw per-command quotes — pass to getTransferRemoteTxs */
147
147
  feeQuotes: Quote[][];
148
148
  }>;
@@ -154,7 +154,7 @@ export declare class WarpCore {
154
154
  * If not provided, calls quoteExecute internally.
155
155
  */
156
156
  protected getQuotedCallsTransferTxs({ originTokenAmount, destination, sender, recipient, quotedCalls, destinationToken, feeQuotes, }: {
157
- originTokenAmount: TokenAmount;
157
+ originTokenAmount: TokenAmount<IToken>;
158
158
  destination: ChainNameOrId;
159
159
  sender: Address;
160
160
  recipient: Address;
@@ -166,7 +166,7 @@ export declare class WarpCore {
166
166
  * Fetch local and interchain fee estimates for a remote transfer
167
167
  */
168
168
  estimateTransferRemoteFees({ originTokenAmount, destination, recipient, sender, senderPubKey, destinationToken, }: {
169
- originTokenAmount: TokenAmount;
169
+ originTokenAmount: TokenAmount<IToken>;
170
170
  destination: ChainNameOrId;
171
171
  recipient: Address;
172
172
  sender: Address;
@@ -177,7 +177,7 @@ export declare class WarpCore {
177
177
  * Estimate fees for a CrossCollateralRouter transfer.
178
178
  */
179
179
  protected estimateCrossCollateralFees({ originTokenAmount, destination, destinationToken, recipient, sender, senderPubKey, }: {
180
- originTokenAmount: TokenAmount;
180
+ originTokenAmount: TokenAmount<IToken>;
181
181
  destination: ChainNameOrId;
182
182
  destinationToken: IToken;
183
183
  recipient: Address;
@@ -189,20 +189,20 @@ export declare class WarpCore {
189
189
  * token balance, accounting for local and interchain gas fees
190
190
  */
191
191
  getMaxTransferAmount({ balance, destination, recipient, sender, senderPubKey, feeEstimate, destinationToken, }: {
192
- balance: TokenAmount;
192
+ balance: TokenAmount<IToken>;
193
193
  destination: ChainNameOrId;
194
194
  recipient: Address;
195
195
  sender: Address;
196
196
  senderPubKey?: HexString;
197
197
  feeEstimate?: WarpCoreFeeEstimate;
198
198
  destinationToken?: IToken;
199
- }): Promise<TokenAmount>;
199
+ }): Promise<TokenAmount<IToken>>;
200
200
  getTokenCollateral(token: IToken): Promise<bigint>;
201
201
  /**
202
202
  * Checks if destination chain's collateral is sufficient to cover the transfer
203
203
  */
204
204
  isDestinationCollateralSufficient({ originTokenAmount, destination, destinationToken, }: {
205
- originTokenAmount: TokenAmount;
205
+ originTokenAmount: TokenAmount<IToken>;
206
206
  destination: ChainNameOrId;
207
207
  destinationToken?: IToken;
208
208
  }): Promise<boolean>;
@@ -210,14 +210,14 @@ export declare class WarpCore {
210
210
  * Checks if a token transfer requires an approval tx first
211
211
  */
212
212
  isApproveRequired({ originTokenAmount, owner, }: {
213
- originTokenAmount: TokenAmount;
213
+ originTokenAmount: TokenAmount<IToken>;
214
214
  owner: Address;
215
215
  }): Promise<boolean>;
216
216
  /**
217
217
  * Ensure the remote token transfer would be valid for the given chains, amount, sender, and recipient
218
218
  */
219
219
  validateTransfer({ originTokenAmount, destination, recipient, sender, senderPubKey, destinationToken, }: {
220
- originTokenAmount: TokenAmount;
220
+ originTokenAmount: TokenAmount<IToken>;
221
221
  destination: ChainNameOrId;
222
222
  recipient: Address;
223
223
  sender: Address;
@@ -235,23 +235,11 @@ export declare class WarpCore {
235
235
  /**
236
236
  * Ensure token amount is valid
237
237
  */
238
- protected validateAmount(originTokenAmount: TokenAmount, destination: ChainNameOrId, recipient: Address, destinationToken?: IToken): Promise<Record<string, string> | null>;
238
+ protected validateAmount(originTokenAmount: TokenAmount<IToken>, destination: ChainNameOrId, recipient: Address, destinationToken?: IToken): Promise<Record<string, string> | null>;
239
239
  /**
240
240
  * Ensure the sender has sufficient balances for transfer and interchain gas
241
241
  */
242
- protected validateTokenBalances(originTokenAmount: TokenAmount, destination: ChainNameOrId, sender: Address, recipient: Address, senderPubKey?: HexString, destinationToken?: IToken): Promise<Record<string, string> | null>;
243
- /**
244
- * Ensure the sender has sufficient balances for transfer and interchain gas
245
- */
246
- protected validateDestinationCollateral(originTokenAmount: TokenAmount, destination: ChainNameOrId, destinationToken?: IToken): Promise<Record<string, string> | null>;
247
- /**
248
- * Ensure the sender has sufficient balances for minting
249
- */
250
- protected validateDestinationRateLimit(originTokenAmount: TokenAmount, destination: ChainNameOrId, destinationToken?: IToken): Promise<Record<string, string> | null>;
251
- /**
252
- * Ensure the sender has sufficient balances for transfer and interchain gas
253
- */
254
- protected validateOriginCollateral(originTokenAmount: TokenAmount): Promise<Record<string, string> | null>;
242
+ protected validateTokenBalances(originTokenAmount: TokenAmount<IToken>, destination: ChainNameOrId, sender: Address, recipient: Address, senderPubKey?: HexString, destinationToken?: IToken): Promise<Record<string, string> | null>;
255
243
  protected resolveDestinationToken({ originToken, destination, destinationToken, }: {
256
244
  originToken: IToken;
257
245
  destination: ChainNameOrId;
@@ -274,5 +262,17 @@ export declare class WarpCore {
274
262
  * and which are connected to a token on the given destination chain
275
263
  */
276
264
  getTokensForRoute(origin: ChainName, destination: ChainName): Token[];
265
+ /**
266
+ * Ensure the sender has sufficient balances for transfer and interchain gas
267
+ */
268
+ protected validateDestinationCollateral(originTokenAmount: TokenAmount<IToken>, destination: ChainNameOrId, destinationToken?: IToken): Promise<Record<string, string> | null>;
269
+ /**
270
+ * Ensure the sender has sufficient balances for minting
271
+ */
272
+ protected validateDestinationRateLimit(originTokenAmount: TokenAmount<IToken>, destination: ChainNameOrId, destinationToken?: IToken): Promise<Record<string, string> | null>;
273
+ /**
274
+ * Ensure the sender has sufficient balances for transfer and interchain gas
275
+ */
276
+ protected validateOriginCollateral(originTokenAmount: TokenAmount<IToken>): Promise<Record<string, string> | null>;
277
277
  }
278
278
  //# sourceMappingURL=WarpCore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WarpCore.d.ts","sourceRoot":"","sources":["../../src/warp/WarpCore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WarpCore.d.ts","sourceRoot":"","sources":["../../src/warp/WarpCore.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,18 @@
1
- import { ProtocolType, addressToBytes32, assert, convertDecimalsToIntegerString, convertToProtocolAddress, convertToScaledAmount, isEVMLike, isValidAddress, isZeroishAddress, rootLogger, } from '@hyperlane-xyz/utils';
1
+ import { ProtocolType, addressToBytes32, assert, convertDecimalsToIntegerString, convertToProtocolAddress, isEVMLike, isValidAddress, isZeroishAddress, rootLogger, } from '@hyperlane-xyz/utils';
2
2
  import { Keypair } from '@solana/web3.js';
3
3
  import { ProviderType } from '../providers/ProviderType.js';
4
4
  import { estimateTransactionFeeEthersV5ForGasUnits, } from '../providers/transactionFeeEstimators.js';
5
5
  import { Token } from '../token/Token.js';
6
6
  import { TokenAmount } from '../token/TokenAmount.js';
7
7
  import { parseTokenConnectionId } from '../token/TokenConnection.js';
8
+ import { tokenIdentifiersEqual } from '../token/TokenMetadata.js';
8
9
  import { LOCKBOX_STANDARDS, MINT_LIMITED_STANDARDS, TOKEN_COLLATERALIZED_STANDARDS, TOKEN_STANDARD_TO_PROVIDER_TYPE, TokenStandard, } from '../token/TokenStandard.js';
9
10
  import { EVM_TRANSFER_REMOTE_GAS_ESTIMATE, } from '../token/adapters/EvmTokenAdapter.js';
10
11
  import { isHypCrossCollateralAdapter, } from '../token/adapters/ITokenAdapter.js';
11
12
  import { buildExecuteCalldata, buildQuoteCalldata, } from '../quoted-calls/builder.js';
12
13
  import { decodeQuoteExecuteResult, extractQuoteTotals, } from '../quoted-calls/codec.js';
13
14
  import { TokenPullMode } from '../quoted-calls/types.js';
15
+ import { messageAmountFromLocal } from '../utils/decimals.js';
14
16
  import { WarpCoreConfigSchema, WarpTxCategory, } from './types.js';
15
17
  export class WarpCore {
16
18
  multiProvider;
@@ -33,28 +35,26 @@ export class WarpCore {
33
35
  }
34
36
  /**
35
37
  * Takes the serialized representation of a warp config and returns a WarpCore instance
36
- * @param multiProvider the MultiProtocolProvider containing chain metadata
38
+ * @param multiProvider the MultiProviderAdapter containing chain metadata
37
39
  * @param config the config object of type WarpCoreConfig
38
40
  */
39
41
  static FromConfig(multiProvider, config) {
40
- // Validate and parse config data
41
42
  const parsedConfig = WarpCoreConfigSchema.parse(config);
42
- // Instantiate all tokens
43
- const tokens = parsedConfig.tokens.map((t) => new Token({
44
- ...t,
45
- addressOrDenom: t.addressOrDenom || '',
43
+ const tokens = parsedConfig.tokens.map((token) => new Token({
44
+ ...token,
45
+ addressOrDenom: token.addressOrDenom || '',
46
46
  connections: undefined,
47
47
  }));
48
- // Connect tokens together
49
48
  parsedConfig.tokens.forEach((config, i) => {
50
49
  for (const connection of config.connections || []) {
51
50
  const token1 = tokens[i];
51
+ assert(token1, `Token config missing at index ${i}`);
52
52
  const { chainName, addressOrDenom } = parseTokenConnectionId(connection.token);
53
53
  // If token1 has a warpRouteId, token2 must share it — disambiguates
54
54
  // tokens at the same address (e.g. M0 Portal: mUSD, wM, USDSC)
55
- const token2 = tokens.find((t) => t.chainName === chainName &&
56
- t.addressOrDenom === addressOrDenom &&
57
- (!token1.warpRouteId || t.warpRouteId === token1.warpRouteId));
55
+ const token2 = tokens.find((token) => token.chainName === chainName &&
56
+ tokenIdentifiersEqual(token.addressOrDenom, addressOrDenom) &&
57
+ (!token1.warpRouteId || token.warpRouteId === token1.warpRouteId));
58
58
  assert(token2, `Connected token not found: ${chainName} ${addressOrDenom}`);
59
59
  token1.addConnection({
60
60
  ...connection,
@@ -62,7 +62,6 @@ export class WarpCore {
62
62
  });
63
63
  }
64
64
  });
65
- // Create new Warp
66
65
  return new WarpCore(multiProvider, tokens, parsedConfig.options);
67
66
  }
68
67
  /**
@@ -788,22 +787,24 @@ export class WarpCore {
788
787
  return true;
789
788
  }
790
789
  const destinationBalance = await this.getTokenCollateral(resolvedDestinationToken);
791
- const destinationBalanceInOriginDecimals = convertDecimalsToIntegerString(resolvedDestinationToken.decimals, originToken.decimals, destinationBalance.toString());
792
- // check for scaling factor
793
- if (originToken.scale &&
794
- resolvedDestinationToken.scale &&
795
- originToken.scale !== resolvedDestinationToken.scale) {
796
- const precisionFactor = 100_000;
797
- const scaledAmount = convertToScaledAmount({
798
- fromScale: originToken.scale,
799
- toScale: resolvedDestinationToken.scale,
800
- amount,
801
- precisionFactor,
802
- });
803
- return (BigInt(destinationBalanceInOriginDecimals) * BigInt(precisionFactor) >=
804
- scaledAmount);
790
+ // Legacy fallback: when both scales are undefined but decimals differ,
791
+ // we can't use message-space comparison because messageAmountFromLocal
792
+ // with identity scale would compare raw local units across different
793
+ // decimal spaces. Fall back to decimal conversion instead.
794
+ // Well-configured routes should have scale set — verifyScale() catches
795
+ // this at deploy time. Misconfigured routes that reach the message-space
796
+ // path below may produce incorrect results.
797
+ if (originToken.decimals !== resolvedDestinationToken.decimals &&
798
+ originToken.scale === undefined &&
799
+ resolvedDestinationToken.scale === undefined) {
800
+ const destinationBalanceInOriginDecimals = BigInt(convertDecimalsToIntegerString(resolvedDestinationToken.decimals, originToken.decimals, destinationBalance.toString()));
801
+ const isSufficient = destinationBalanceInOriginDecimals >= amount;
802
+ this.logger.debug(`${originTokenAmount.token.symbol} to ${destination} has ${isSufficient ? 'sufficient' : 'INSUFFICIENT'} collateral`);
803
+ return isSufficient;
805
804
  }
806
- const isSufficient = BigInt(destinationBalanceInOriginDecimals) >= amount;
805
+ const requiredMessageAmount = messageAmountFromLocal(amount, originToken.scale);
806
+ const availableMessageAmount = messageAmountFromLocal(destinationBalance, resolvedDestinationToken.scale);
807
+ const isSufficient = availableMessageAmount >= requiredMessageAmount;
807
808
  this.logger.debug(`${originTokenAmount.token.symbol} to ${destination} has ${isSufficient ? 'sufficient' : 'INSUFFICIENT'} collateral`);
808
809
  return isSufficient;
809
810
  }
@@ -992,6 +993,60 @@ export class WarpCore {
992
993
  }
993
994
  return null;
994
995
  }
996
+ resolveDestinationToken({ originToken, destination, destinationToken, }) {
997
+ const destinationName = this.multiProvider.getChainName(destination);
998
+ const destinationCandidates = originToken
999
+ .getConnections()
1000
+ .filter((connection) => connection.token.chainName === destinationName)
1001
+ .map((connection) => connection.token);
1002
+ assert(destinationCandidates.length > 0, `No connection found for ${destinationName}`);
1003
+ if (destinationToken) {
1004
+ assert(destinationToken.chainName === destinationName, `Destination token chain mismatch for ${destinationName}`);
1005
+ const matchedToken = destinationCandidates.find((candidate) => candidate.equals(destinationToken) ||
1006
+ tokenIdentifiersEqual(candidate.addressOrDenom, destinationToken.addressOrDenom));
1007
+ assert(matchedToken, `Destination token ${destinationToken.addressOrDenom} is not connected from ${originToken.chainName} to ${destinationName}`);
1008
+ return matchedToken;
1009
+ }
1010
+ assert(destinationCandidates.length === 1, `Ambiguous route to ${destinationName}; specify destination token`);
1011
+ return destinationCandidates[0];
1012
+ }
1013
+ /**
1014
+ * Search through token list to find token with matching chain and address
1015
+ */
1016
+ findToken(chainName, addressOrDenom) {
1017
+ if (!addressOrDenom)
1018
+ return null;
1019
+ const results = this.tokens.filter((token) => token.chainName === chainName &&
1020
+ tokenIdentifiersEqual(token.addressOrDenom, addressOrDenom));
1021
+ if (results.length === 1)
1022
+ return results[0];
1023
+ if (results.length > 1)
1024
+ throw new Error(`Ambiguous token search results for ${addressOrDenom}`);
1025
+ const chainMetadata = this.multiProvider.getChainMetadata(chainName);
1026
+ if (chainMetadata.nativeToken?.denom === addressOrDenom) {
1027
+ return Token.FromChainMetadataNativeToken(chainMetadata);
1028
+ }
1029
+ return null;
1030
+ }
1031
+ /**
1032
+ * Get the list of chains referenced by the tokens in this WarpCore
1033
+ */
1034
+ getTokenChains() {
1035
+ return [...new Set(this.tokens.map((token) => token.chainName)).values()];
1036
+ }
1037
+ /**
1038
+ * Get the subset of tokens whose chain matches the given chainName
1039
+ */
1040
+ getTokensForChain(chainName) {
1041
+ return this.tokens.filter((token) => token.chainName === chainName);
1042
+ }
1043
+ /**
1044
+ * Get the subset of tokens whose chain matches the given chainName
1045
+ * and which are connected to a token on the given destination chain
1046
+ */
1047
+ getTokensForRoute(origin, destination) {
1048
+ return this.tokens.filter((token) => token.chainName === origin && token.getConnectionForChain(destination));
1049
+ }
995
1050
  /**
996
1051
  * Ensure the sender has sufficient balances for transfer and interchain gas
997
1052
  */
@@ -1064,62 +1119,5 @@ export class WarpCore {
1064
1119
  }
1065
1120
  return null;
1066
1121
  }
1067
- resolveDestinationToken({ originToken, destination, destinationToken, }) {
1068
- const destinationName = this.multiProvider.getChainName(destination);
1069
- const destinationCandidates = originToken
1070
- .getConnections()
1071
- .filter((connection) => connection.token.chainName === destinationName)
1072
- .map((connection) => connection.token);
1073
- assert(destinationCandidates.length > 0, `No connection found for ${destinationName}`);
1074
- if (destinationToken) {
1075
- assert(destinationToken.chainName === destinationName, `Destination token chain mismatch for ${destinationName}`);
1076
- const matchedToken = destinationCandidates.find((candidate) => candidate.equals(destinationToken) ||
1077
- candidate.addressOrDenom.toLowerCase() ===
1078
- destinationToken.addressOrDenom.toLowerCase());
1079
- assert(matchedToken, `Destination token ${destinationToken.addressOrDenom} is not connected from ${originToken.chainName} to ${destinationName}`);
1080
- return matchedToken;
1081
- }
1082
- assert(destinationCandidates.length === 1, `Ambiguous route to ${destinationName}; specify destination token`);
1083
- return destinationCandidates[0];
1084
- }
1085
- /**
1086
- * Search through token list to find token with matching chain and address
1087
- */
1088
- findToken(chainName, addressOrDenom) {
1089
- if (!addressOrDenom)
1090
- return null;
1091
- const results = this.tokens.filter((token) => token.chainName === chainName &&
1092
- token.addressOrDenom.toLowerCase() === addressOrDenom.toLowerCase());
1093
- if (results.length === 1)
1094
- return results[0];
1095
- if (results.length > 1)
1096
- throw new Error(`Ambiguous token search results for ${addressOrDenom}`);
1097
- // If the token is not found, check to see if it matches the denom of chain's native token
1098
- // This is a convenience so WarpConfigs don't need to include definitions for native tokens
1099
- const chainMetadata = this.multiProvider.getChainMetadata(chainName);
1100
- if (chainMetadata.nativeToken?.denom === addressOrDenom) {
1101
- return Token.FromChainMetadataNativeToken(chainMetadata);
1102
- }
1103
- return null;
1104
- }
1105
- /**
1106
- * Get the list of chains referenced by the tokens in this WarpCore
1107
- */
1108
- getTokenChains() {
1109
- return [...new Set(this.tokens.map((t) => t.chainName)).values()];
1110
- }
1111
- /**
1112
- * Get the subset of tokens whose chain matches the given chainName
1113
- */
1114
- getTokensForChain(chainName) {
1115
- return this.tokens.filter((t) => t.chainName === chainName);
1116
- }
1117
- /**
1118
- * Get the subset of tokens whose chain matches the given chainName
1119
- * and which are connected to a token on the given destination chain
1120
- */
1121
- getTokensForRoute(origin, destination) {
1122
- return this.tokens.filter((t) => t.chainName === origin && t.getConnectionForChain(destination));
1123
- }
1124
1122
  }
1125
1123
  //# sourceMappingURL=WarpCore.js.map