@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,48 +1,44 @@
1
- import { ProtocolType, assert, eqAddress, isEVMLike, } from '@hyperlane-xyz/utils';
2
- import { isStarknetFeeToken } from '../utils/starknet.js';
1
+ import { ProtocolType, assert, isEVMLike, } from '@hyperlane-xyz/utils';
3
2
  import { TokenAmount } from './TokenAmount.js';
4
3
  import { TokenConnectionType } from './TokenConnection.js';
5
- import { PROTOCOL_TO_HYP_NATIVE_STANDARD, PROTOCOL_TO_NATIVE_STANDARD, TOKEN_COLLATERALIZED_STANDARDS, TOKEN_HYP_STANDARDS, TOKEN_MULTI_CHAIN_STANDARDS, TOKEN_NFT_STANDARDS, TOKEN_STANDARD_TO_PROTOCOL, TokenStandard, XERC20_STANDARDS, } from './TokenStandard.js';
6
- import { AleoHypCollateralAdapter, AleoHypNativeAdapter, AleoHypSyntheticAdapter, AleoNativeTokenAdapter, } from './adapters/AleoTokenAdapter.js';
7
- import { CwHypCollateralAdapter, CwHypNativeAdapter, CwHypSyntheticAdapter, CwNativeTokenAdapter, CwTokenAdapter, } from './adapters/CosmWasmTokenAdapter.js';
8
- import { CosmNativeHypCollateralAdapter, CosmNativeHypSyntheticAdapter, } from './adapters/CosmosModuleTokenAdapter.js';
4
+ import { TokenStandard } from './TokenStandard.js';
5
+ import { TokenMetadata } from './TokenMetadata.js';
6
+ import { AleoNativeTokenAdapter } from './adapters/AleoTokenAdapter.js';
7
+ import { CwNativeTokenAdapter, CwTokenAdapter, } from './adapters/CosmWasmTokenAdapter.js';
9
8
  import { CosmIbcToWarpTokenAdapter, CosmIbcTokenAdapter, CosmNativeTokenAdapter, } from './adapters/CosmosTokenAdapter.js';
10
- import { EvmHypCrossCollateralAdapter } from './adapters/EvmCrossCollateralAdapter.js';
11
- import { EvmHypCollateralFiatAdapter, EvmHypNativeAdapter, EvmHypRebaseCollateralAdapter, EvmHypSyntheticAdapter, EvmHypSyntheticRebaseAdapter, EvmHypXERC20Adapter, EvmHypXERC20LockboxAdapter, EvmMovableCollateralAdapter, EvmNativeTokenAdapter, EvmTokenAdapter, } from './adapters/EvmTokenAdapter.js';
9
+ import { EvmNativeTokenAdapter, EvmTokenAdapter, } from './adapters/EvmTokenAdapter.js';
12
10
  import { M0PortalLiteTokenAdapter } from './adapters/M0PortalLiteTokenAdapter.js';
13
11
  import { M0PortalTokenAdapter } from './adapters/M0PortalTokenAdapter.js';
14
- import { RadixHypCollateralAdapter, RadixHypSyntheticAdapter, RadixNativeTokenAdapter, RadixTokenAdapter, } from './adapters/RadixTokenAdapter.js';
15
- import { SealevelHypCrossCollateralAdapter } from './adapters/SealevelCrossCollateralAdapter.js';
16
- import { SealevelHypCollateralAdapter, SealevelHypNativeAdapter, SealevelHypSyntheticAdapter, SealevelNativeTokenAdapter, SealevelTokenAdapter, } from './adapters/SealevelTokenAdapter.js';
17
- import { StarknetHypCollateralAdapter, StarknetHypFeeAdapter, StarknetHypNativeAdapter, StarknetHypSyntheticAdapter, StarknetTokenAdapter, } from './adapters/StarknetTokenAdapter.js';
18
- import { PROTOCOL_TO_DEFAULT_NATIVE_TOKEN } from './nativeTokenMetadata.js';
19
- export class Token {
20
- protocol;
21
- constructor(args) {
22
- Object.assign(this, args);
23
- this.protocol = TOKEN_STANDARD_TO_PROTOCOL[this.standard];
12
+ import { RadixNativeTokenAdapter, RadixTokenAdapter, } from './adapters/RadixTokenAdapter.js';
13
+ import { SealevelNativeTokenAdapter, SealevelTokenAdapter, } from './adapters/SealevelTokenAdapter.js';
14
+ import { StarknetTokenAdapter } from './adapters/StarknetTokenAdapter.js';
15
+ import { createAleoHypAdapter } from './adapters/aleoHyp.js';
16
+ import { createCosmosHypAdapter } from './adapters/cosmosHyp.js';
17
+ import { createEvmHypAdapter } from './adapters/evmHyp.js';
18
+ import { hasOnlyHyperlaneConnections } from './adapters/hypTokenAdapterUtils.js';
19
+ import { createRadixHypAdapter } from './adapters/radixHyp.js';
20
+ import { createSealevelHypAdapter } from './adapters/sealevelHyp.js';
21
+ import { createStarknetHypAdapter } from './adapters/starknetHyp.js';
22
+ import { createTronHypAdapter } from './adapters/tronHyp.js';
23
+ export class Token extends TokenMetadata {
24
+ amount(amount) {
25
+ return new TokenAmount(amount, this);
24
26
  }
25
- /**
26
- * Creates a Token for the native currency on the given chain.
27
- * Will use the default native token for the given protocol if
28
- * nothing specific is set in the ChainMetadata.
29
- */
30
- static FromChainMetadataNativeToken(chainMetadata) {
31
- const { protocol, name: chainName, logoURI, gasCurrencyCoinGeckoId, } = chainMetadata;
32
- assert(protocol !== ProtocolType.Unknown, 'Cannot create native token for unknown protocol');
33
- const knownProtocol = protocol;
34
- const nativeToken = chainMetadata.nativeToken ||
35
- PROTOCOL_TO_DEFAULT_NATIVE_TOKEN[knownProtocol];
36
- return new Token({
37
- chainName,
38
- standard: PROTOCOL_TO_NATIVE_STANDARD[knownProtocol],
39
- addressOrDenom: nativeToken.denom ?? '',
40
- decimals: nativeToken.decimals,
41
- symbol: nativeToken.symbol,
42
- name: nativeToken.name,
43
- logoURI,
44
- coinGeckoId: gasCurrencyCoinGeckoId,
45
- });
27
+ getConnections() {
28
+ // CAST: Token instances only store TokenConnection<IToken>; the base
29
+ // TokenMetadata type widens this to ITokenMetadata for shared read paths.
30
+ return (this.connections || []);
31
+ }
32
+ getConnectionForChain(chain) {
33
+ return this.getConnections().filter((t) => t.token.chainName === chain)[0];
34
+ }
35
+ addConnection(connection) {
36
+ this.connections = [...(this.connections || []), connection];
37
+ return this;
38
+ }
39
+ removeConnection(token) {
40
+ super.removeConnection(token);
41
+ return this;
46
42
  }
47
43
  /**
48
44
  * Returns a TokenAdapter for the token and multiProvider
@@ -126,130 +122,21 @@ export class Token {
126
122
  getHypAdapter(multiProvider, destination) {
127
123
  const { standard, chainName, addressOrDenom, collateralAddressOrDenom } = this;
128
124
  const chainMetadata = multiProvider.tryGetChainMetadata(chainName);
129
- const mailbox = chainMetadata?.mailbox;
130
- if (standard === TokenStandard.EvmNative &&
131
- this.connections?.length &&
132
- this.connections.every((c) => !c.type || c.type === TokenConnectionType.Hyperlane)) {
133
- assert(chainMetadata, `Token chain ${chainName} not found in multiProvider`);
134
- return new EvmHypNativeAdapter(chainName, multiProvider, {
135
- token: addressOrDenom,
136
- });
137
- }
138
- assert(this.isMultiChainToken(), `Token standard ${standard} not applicable to hyp adapter`);
125
+ const isConnectedNativeToken = (standard === TokenStandard.EvmNative ||
126
+ standard === TokenStandard.TronNative) &&
127
+ hasOnlyHyperlaneConnections(this);
128
+ assert(this.isMultiChainToken() || isConnectedNativeToken, `Token standard ${standard} not applicable to hyp adapter`);
139
129
  assert(!this.isNft(), 'NFT adapters not yet supported');
140
130
  assert(chainMetadata, `Token chain ${chainName} not found in multiProvider`);
141
- if (standard === TokenStandard.EvmHypNative ||
142
- standard === TokenStandard.TronHypNative) {
143
- return new EvmHypNativeAdapter(chainName, multiProvider, {
144
- token: addressOrDenom,
145
- });
146
- }
147
- else if (standard === TokenStandard.EvmHypCollateral ||
148
- standard === TokenStandard.EvmHypOwnerCollateral ||
149
- standard === TokenStandard.TronHypCollateral ||
150
- standard === TokenStandard.TronHypOwnerCollateral) {
151
- return new EvmMovableCollateralAdapter(chainName, multiProvider, {
152
- token: addressOrDenom,
153
- });
154
- }
155
- else if (standard === TokenStandard.EvmHypCrossCollateralRouter ||
156
- standard === TokenStandard.TronHypCrossCollateralRouter) {
157
- return new EvmHypCrossCollateralAdapter(chainName, multiProvider, {
158
- token: addressOrDenom,
159
- });
160
- }
161
- else if (standard === TokenStandard.EvmHypRebaseCollateral ||
162
- standard === TokenStandard.TronHypRebaseCollateral) {
163
- return new EvmHypRebaseCollateralAdapter(chainName, multiProvider, {
164
- token: addressOrDenom,
165
- });
166
- }
167
- else if (standard === TokenStandard.EvmHypCollateralFiat ||
168
- standard === TokenStandard.TronHypCollateralFiat) {
169
- return new EvmHypCollateralFiatAdapter(chainName, multiProvider, {
170
- token: addressOrDenom,
171
- });
172
- }
173
- else if (standard === TokenStandard.EvmHypSynthetic ||
174
- standard === TokenStandard.TronHypSynthetic) {
175
- return new EvmHypSyntheticAdapter(chainName, multiProvider, {
176
- token: addressOrDenom,
177
- });
178
- }
179
- else if (standard === TokenStandard.EvmHypSyntheticRebase ||
180
- standard === TokenStandard.TronHypSyntheticRebase) {
181
- return new EvmHypSyntheticRebaseAdapter(chainName, multiProvider, {
182
- token: addressOrDenom,
183
- });
184
- }
185
- else if (standard === TokenStandard.EvmHypXERC20 ||
186
- standard === TokenStandard.EvmHypVSXERC20 ||
187
- standard === TokenStandard.TronHypXERC20 ||
188
- standard === TokenStandard.TronHypVSXERC20) {
189
- return new EvmHypXERC20Adapter(chainName, multiProvider, {
190
- token: addressOrDenom,
191
- });
192
- }
193
- else if (standard === TokenStandard.EvmHypXERC20Lockbox ||
194
- standard === TokenStandard.EvmHypVSXERC20Lockbox ||
195
- standard === TokenStandard.TronHypXERC20Lockbox ||
196
- standard === TokenStandard.TronHypVSXERC20Lockbox) {
197
- return new EvmHypXERC20LockboxAdapter(chainName, multiProvider, {
198
- token: addressOrDenom,
199
- });
200
- }
201
- else if (standard === TokenStandard.SealevelHypNative) {
202
- assert(mailbox, `Mailbox required for Sealevel hyp tokens`);
203
- return new SealevelHypNativeAdapter(chainName, multiProvider, {
204
- warpRouter: addressOrDenom,
205
- mailbox,
206
- });
207
- }
208
- else if (standard === TokenStandard.SealevelHypCollateral) {
209
- assert(mailbox, `Mailbox required for Sealevel hyp tokens`);
210
- assert(collateralAddressOrDenom, `collateralAddressOrDenom required for Sealevel hyp collateral tokens`);
211
- return new SealevelHypCollateralAdapter(chainName, multiProvider, {
212
- warpRouter: addressOrDenom,
213
- token: collateralAddressOrDenom,
214
- mailbox,
215
- });
216
- }
217
- else if (standard === TokenStandard.SealevelHypCrossCollateral) {
218
- assert(mailbox, `Mailbox required for Sealevel hyp tokens`);
219
- assert(collateralAddressOrDenom, `collateralAddressOrDenom required for Sealevel hyp cross-collateral tokens`);
220
- return new SealevelHypCrossCollateralAdapter(chainName, multiProvider, {
221
- warpRouter: addressOrDenom,
222
- token: collateralAddressOrDenom,
223
- mailbox,
224
- });
225
- }
226
- else if (standard === TokenStandard.SealevelHypSynthetic) {
227
- assert(mailbox, `Mailbox required for Sealevel hyp tokens`);
228
- assert(collateralAddressOrDenom, `collateralAddressOrDenom required for Sealevel hyp collateral tokens`);
229
- return new SealevelHypSyntheticAdapter(chainName, multiProvider, {
230
- warpRouter: addressOrDenom,
231
- token: collateralAddressOrDenom,
232
- mailbox,
233
- });
234
- }
235
- else if (standard === TokenStandard.CwHypNative) {
236
- return new CwHypNativeAdapter(chainName, multiProvider, {
237
- warpRouter: addressOrDenom,
238
- });
239
- }
240
- else if (standard === TokenStandard.CwHypCollateral) {
241
- assert(collateralAddressOrDenom, 'collateralAddressOrDenom required for CwHypCollateral');
242
- return new CwHypCollateralAdapter(chainName, multiProvider, {
243
- warpRouter: addressOrDenom,
244
- token: collateralAddressOrDenom,
245
- });
246
- }
247
- else if (standard === TokenStandard.CwHypSynthetic) {
248
- assert(collateralAddressOrDenom, 'collateralAddressOrDenom required for CwHypSyntheticAdapter');
249
- return new CwHypSyntheticAdapter(chainName, multiProvider, {
250
- warpRouter: addressOrDenom,
251
- token: collateralAddressOrDenom,
252
- });
131
+ const hypAdapter = createEvmHypAdapter(multiProvider, this) ||
132
+ createTronHypAdapter(multiProvider, this) ||
133
+ createSealevelHypAdapter(multiProvider, this) ||
134
+ createCosmosHypAdapter(multiProvider, this) ||
135
+ createStarknetHypAdapter(multiProvider, this) ||
136
+ createRadixHypAdapter(multiProvider, this) ||
137
+ createAleoHypAdapter(multiProvider, this);
138
+ if (hypAdapter) {
139
+ return hypAdapter;
253
140
  }
254
141
  else if (standard === TokenStandard.CosmosIbc) {
255
142
  assert(destination, 'destination required for IBC token adapters');
@@ -257,61 +144,6 @@ export class Token {
257
144
  assert(connection, `No connection found for chain ${destination}`);
258
145
  return this.getIbcAdapter(multiProvider, connection);
259
146
  }
260
- else if (standard === TokenStandard.CosmNativeHypCollateral) {
261
- return new CosmNativeHypCollateralAdapter(chainName, multiProvider, {
262
- token: addressOrDenom,
263
- });
264
- }
265
- else if (standard === TokenStandard.CosmNativeHypSynthetic) {
266
- return new CosmNativeHypSyntheticAdapter(chainName, multiProvider, {
267
- token: addressOrDenom,
268
- });
269
- }
270
- else if (isStarknetFeeToken(chainName, addressOrDenom)) {
271
- return new StarknetHypFeeAdapter(chainName, multiProvider, {
272
- warpRouter: addressOrDenom,
273
- });
274
- }
275
- else if (standard === TokenStandard.StarknetHypNative) {
276
- return new StarknetHypNativeAdapter(chainName, multiProvider, {
277
- warpRouter: addressOrDenom,
278
- });
279
- }
280
- else if (standard === TokenStandard.StarknetHypSynthetic) {
281
- return new StarknetHypSyntheticAdapter(chainName, multiProvider, {
282
- warpRouter: addressOrDenom,
283
- });
284
- }
285
- else if (standard === TokenStandard.StarknetHypCollateral) {
286
- return new StarknetHypCollateralAdapter(chainName, multiProvider, {
287
- warpRouter: addressOrDenom,
288
- });
289
- }
290
- else if (standard === TokenStandard.RadixHypCollateral) {
291
- return new RadixHypCollateralAdapter(chainName, multiProvider, {
292
- token: addressOrDenom,
293
- });
294
- }
295
- else if (standard === TokenStandard.RadixHypSynthetic) {
296
- return new RadixHypSyntheticAdapter(chainName, multiProvider, {
297
- token: addressOrDenom,
298
- });
299
- }
300
- else if (standard === TokenStandard.AleoHypNative) {
301
- return new AleoHypNativeAdapter(chainName, multiProvider, {
302
- token: addressOrDenom,
303
- });
304
- }
305
- else if (standard === TokenStandard.AleoHypCollateral) {
306
- return new AleoHypCollateralAdapter(chainName, multiProvider, {
307
- token: addressOrDenom,
308
- });
309
- }
310
- else if (standard === TokenStandard.AleoHypSynthetic) {
311
- return new AleoHypSyntheticAdapter(chainName, multiProvider, {
312
- token: addressOrDenom,
313
- });
314
- }
315
147
  else if (standard === TokenStandard.EvmM0PortalLite ||
316
148
  standard === TokenStandard.TronM0PortalLite) {
317
149
  assert(collateralAddressOrDenom, 'collateralAddressOrDenom (mToken address) required for M0PortalLite');
@@ -358,102 +190,6 @@ export class Token {
358
190
  const balance = await adapter.getBalance(address);
359
191
  return new TokenAmount(balance, this);
360
192
  }
361
- amount(amount) {
362
- return new TokenAmount(amount, this);
363
- }
364
- isNft() {
365
- return TOKEN_NFT_STANDARDS.includes(this.standard);
366
- }
367
- isNative() {
368
- return Object.values(PROTOCOL_TO_NATIVE_STANDARD).includes(this.standard);
369
- }
370
- isHypNative() {
371
- return Object.values(PROTOCOL_TO_HYP_NATIVE_STANDARD).includes(this.standard);
372
- }
373
- isCollateralized() {
374
- return TOKEN_COLLATERALIZED_STANDARDS.includes(this.standard);
375
- }
376
- isHypToken() {
377
- return TOKEN_HYP_STANDARDS.includes(this.standard);
378
- }
379
- isXerc20() {
380
- return XERC20_STANDARDS.includes(this.standard);
381
- }
382
- isIbcToken() {
383
- return this.standard === TokenStandard.CosmosIbc;
384
- }
385
- isMultiChainToken() {
386
- return TOKEN_MULTI_CHAIN_STANDARDS.includes(this.standard);
387
- }
388
- isCrossCollateralToken() {
389
- return (this.standard === TokenStandard.EvmHypCrossCollateralRouter ||
390
- this.standard === TokenStandard.TronHypCrossCollateralRouter ||
391
- this.standard === TokenStandard.SealevelHypCrossCollateral);
392
- }
393
- getConnections() {
394
- return this.connections || [];
395
- }
396
- getConnectionForChain(chain) {
397
- // A token cannot have > 1 connected token for the same chain
398
- return this.getConnections().filter((t) => t.token.chainName === chain)[0];
399
- }
400
- addConnection(connection) {
401
- this.connections = [...(this.connections || []), connection];
402
- return this;
403
- }
404
- removeConnection(token) {
405
- const index = this.connections?.findIndex((t) => t.token.equals(token));
406
- if (index && index >= 0)
407
- this.connections?.splice(index, 1);
408
- return this;
409
- }
410
- /**
411
- * Returns true if tokens refer to the same asset
412
- */
413
- equals(token) {
414
- if (!token)
415
- return false;
416
- return (this.protocol === token.protocol &&
417
- this.chainName === token.chainName &&
418
- this.standard === token.standard &&
419
- this.decimals === token.decimals &&
420
- this.addressOrDenom.toLowerCase() ===
421
- token.addressOrDenom.toLowerCase() &&
422
- this.collateralAddressOrDenom?.toLowerCase() ===
423
- token.collateralAddressOrDenom?.toLowerCase());
424
- }
425
- /**
426
- * Two tokens may not be equal but may still represent the same underlying asset
427
- * The cases for this include:
428
- * 1) A HypCollateral contract token and its wrapped token (eg. EvmHypCollateral and ERC20)
429
- * 2) A HypNative contract and its native currency (eg. EvmHypNative and Ether)
430
- * 3) An IBC token and its native equivalent
431
- * This is useful during fee estimation to determine if a TokenAmount for the transfer and the fee
432
- * are actually fungible (represent the same asset).
433
- * @returns true if the tokens represent the same underlying asset
434
- */
435
- isFungibleWith(token) {
436
- if (!token || token.chainName !== this.chainName)
437
- return false;
438
- if (this.equals(token))
439
- return true;
440
- if (this.isCollateralized()) {
441
- if (this.collateralAddressOrDenom &&
442
- eqAddress(this.collateralAddressOrDenom, token.addressOrDenom)) {
443
- return true;
444
- }
445
- if (!this.collateralAddressOrDenom &&
446
- (token.isNative() || token.isHypNative())) {
447
- return true;
448
- }
449
- }
450
- if (this.standard === TokenStandard.CosmosIbc &&
451
- token.standard === TokenStandard.CosmosNative &&
452
- this.addressOrDenom.toLowerCase() === token.addressOrDenom.toLowerCase()) {
453
- return true;
454
- }
455
- return false;
456
- }
457
193
  }
458
194
  export function getCollateralTokenAdapter({ chainName, multiProvider, tokenAddress, }) {
459
195
  const protocolType = multiProvider.getProtocol(chainName);
@@ -1 +1 @@
1
- {"version":3,"file":"Token.js","sourceRoot":"","sources":["../../src/token/Token.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Token.js","sourceRoot":"","sources":["../../src/token/Token.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { SystemProgram } from '@solana/web3.js';
3
3
  import { expect } from 'chai';
4
4
  import { ethers } from 'ethers';
5
5
  import { ProtocolType } from '@hyperlane-xyz/utils';
6
- import { TestChainName, test1, testCosmosChain, testSealevelChain, } from '../consts/testChains.js';
6
+ import { TestChainName, multiProtocolTestChainMetadata, test1, testCosmosChain, testSealevelChain, } from '../consts/testChains.js';
7
7
  import { MultiProtocolProvider } from '../providers/MultiProtocolProvider.js';
8
8
  import { stubMultiProtocolProvider } from '../test/multiProviderStubs.js';
9
9
  import { Token } from './Token.js';
@@ -264,14 +264,20 @@ const STANDARD_TO_ADDRESS_FOR_BALANCE_CHECK = {
264
264
  [TokenStandard.CwHypNative]: 'inj1fl48vsnmsdzcv85q5d2q4z5ajdha8yu3lj7tt0',
265
265
  };
266
266
  describe('Token', () => {
267
+ function createMailboxTestMetadata() {
268
+ return {
269
+ ...multiProtocolTestChainMetadata,
270
+ [testSealevelChain.name]: {
271
+ ...multiProtocolTestChainMetadata[testSealevelChain.name],
272
+ mailbox: SystemProgram.programId.toBase58(),
273
+ },
274
+ };
275
+ }
267
276
  for (const tokenArgs of Object.values(STANDARD_TO_TOKEN)) {
268
277
  if (!tokenArgs)
269
278
  continue;
270
279
  it(`Handles ${tokenArgs.standard} standard`, async () => {
271
- const multiProvider = MultiProtocolProvider.createTestMultiProtocolProvider();
272
- // A placeholder mailbox address for the sealevel chain
273
- multiProvider.metadata[testSealevelChain.name].mailbox =
274
- SystemProgram.programId.toBase58();
280
+ const multiProvider = MultiProtocolProvider.createTestMultiProtocolProvider(createMailboxTestMetadata());
275
281
  console.debug('Testing token standard', tokenArgs.standard);
276
282
  const token = new Token(tokenArgs);
277
283
  expect(token.standard).to.eql(tokenArgs.standard);
@@ -296,7 +302,7 @@ describe('Token', () => {
296
302
  }
297
303
  describe('getHypAdapter', () => {
298
304
  it('returns EvmHypNativeAdapter for EvmNative with connections', () => {
299
- const multiProvider = MultiProtocolProvider.createTestMultiProtocolProvider();
305
+ const multiProvider = MultiProtocolProvider.createTestMultiProtocolProvider(createMailboxTestMetadata());
300
306
  const evmNativeToken = new Token(Token.FromChainMetadataNativeToken(test1));
301
307
  const remoteToken = new Token({
302
308
  chainName: TestChainName.test2,
@@ -314,7 +320,7 @@ describe('Token', () => {
314
320
  expect(adapter.constructor.name).to.eql('EvmHypNativeAdapter');
315
321
  });
316
322
  it('returns EvmHypNativeAdapter for EvmNative with untyped connection', () => {
317
- const multiProvider = MultiProtocolProvider.createTestMultiProtocolProvider();
323
+ const multiProvider = MultiProtocolProvider.createTestMultiProtocolProvider(createMailboxTestMetadata());
318
324
  const evmNativeToken = new Token(Token.FromChainMetadataNativeToken(test1));
319
325
  const remoteToken = new Token({
320
326
  chainName: TestChainName.test2,
@@ -328,13 +334,47 @@ describe('Token', () => {
328
334
  const adapter = evmNativeToken.getHypAdapter(multiProvider);
329
335
  expect(adapter.constructor.name).to.eql('EvmHypNativeAdapter');
330
336
  });
337
+ it('returns EvmHypNativeAdapter for TronNative with connections', () => {
338
+ const multiProvider = MultiProtocolProvider.createTestMultiProtocolProvider({
339
+ ...multiProtocolTestChainMetadata,
340
+ tron: {
341
+ ...test1,
342
+ chainId: 9913388,
343
+ domainId: 9913388,
344
+ name: 'tron',
345
+ protocol: ProtocolType.Tron,
346
+ },
347
+ });
348
+ const tronNativeToken = new Token({
349
+ chainName: 'tron',
350
+ standard: TokenStandard.TronNative,
351
+ addressOrDenom: 'T9yD14Nj9j7xAB4dbGeiX9h8unkKHxuWwb',
352
+ decimals: 6,
353
+ symbol: 'TRX',
354
+ name: 'Tron',
355
+ });
356
+ const remoteToken = new Token({
357
+ chainName: TestChainName.test2,
358
+ standard: TokenStandard.EvmHypSynthetic,
359
+ addressOrDenom: '0x8358D8291e3bEDb04804975eEa0fe9fe0fAfB147',
360
+ decimals: 6,
361
+ symbol: 'TRX',
362
+ name: 'Tron',
363
+ });
364
+ tronNativeToken.addConnection({
365
+ token: remoteToken,
366
+ type: TokenConnectionType.Hyperlane,
367
+ });
368
+ const adapter = tronNativeToken.getHypAdapter(multiProvider);
369
+ expect(adapter.constructor.name).to.eql('EvmHypNativeAdapter');
370
+ });
331
371
  it('throws for EvmNative without connections', () => {
332
- const multiProvider = MultiProtocolProvider.createTestMultiProtocolProvider();
372
+ const multiProvider = MultiProtocolProvider.createTestMultiProtocolProvider(createMailboxTestMetadata());
333
373
  const evmNativeToken = new Token(Token.FromChainMetadataNativeToken(test1));
334
374
  expect(() => evmNativeToken.getHypAdapter(multiProvider)).to.throw('not applicable to hyp adapter');
335
375
  });
336
376
  it('throws for EvmNative with IBC connections', () => {
337
- const multiProvider = MultiProtocolProvider.createTestMultiProtocolProvider();
377
+ const multiProvider = MultiProtocolProvider.createTestMultiProtocolProvider(createMailboxTestMetadata());
338
378
  const evmNativeToken = new Token(Token.FromChainMetadataNativeToken(test1));
339
379
  const remoteToken = new Token({
340
380
  chainName: testCosmosChain.name,
@@ -353,7 +393,7 @@ describe('Token', () => {
353
393
  expect(() => evmNativeToken.getHypAdapter(multiProvider)).to.throw('not applicable to hyp adapter');
354
394
  });
355
395
  it('throws for EvmNative with chain not in multiProvider', () => {
356
- const multiProvider = MultiProtocolProvider.createTestMultiProtocolProvider();
396
+ const multiProvider = MultiProtocolProvider.createTestMultiProtocolProvider(createMailboxTestMetadata());
357
397
  const evmNativeToken = new Token({
358
398
  chainName: 'nonexistent',
359
399
  standard: TokenStandard.EvmNative,
@@ -461,12 +501,14 @@ describe('Token', () => {
461
501
  });
462
502
  it('returns true for collateralized token without collateral address and native token', () => {
463
503
  expect(evmHypNativeToken2.isFungibleWith(evmNativeToken)).to.be.true;
504
+ expect(evmNativeToken.isFungibleWith(evmHypNativeToken2)).to.be.true;
464
505
  });
465
506
  it('returns true for collateralized token without collateral address and HypNative token', () => {
466
507
  expect(evmHypNativeToken2.isFungibleWith(evmHypNativeToken)).to.be.true;
467
508
  });
468
509
  it('returns true for IBC token and matching native token', () => {
469
510
  expect(cosmosIbcToken.isFungibleWith(cosmosNativeToken)).to.be.true;
511
+ expect(cosmosNativeToken.isFungibleWith(cosmosIbcToken)).to.be.true;
470
512
  });
471
513
  it('returns false for IBC token and non-matching native token', () => {
472
514
  const nonMatchingNativeToken = new Token({
@@ -1 +1 @@
1
- {"version":3,"file":"Token.test.js","sourceRoot":"","sources":["../../src/token/Token.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Token.test.js","sourceRoot":"","sources":["../../src/token/Token.test.ts"],"names":[],"mappings":"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"}