@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
@@ -0,0 +1,61 @@
1
+ import { EvmHypCollateralFiatAdapter, EvmHypNativeAdapter, EvmHypRebaseCollateralAdapter, EvmHypSyntheticAdapter, EvmHypSyntheticRebaseAdapter, EvmHypXERC20Adapter, EvmHypXERC20LockboxAdapter, EvmMovableCollateralAdapter, } from './EvmTokenAdapter.js';
2
+ import { EvmHypCrossCollateralAdapter } from './EvmCrossCollateralAdapter.js';
3
+ import { hasChainMetadata, hasOnlyHyperlaneConnections, } from './hypTokenAdapterUtils.js';
4
+ export function createEvmLikeHypAdapter(multiProvider, token, standards) {
5
+ const { standard, chainName, addressOrDenom } = token;
6
+ if (!standard || !hasChainMetadata(multiProvider, chainName)) {
7
+ return undefined;
8
+ }
9
+ if (standard === standards.native && hasOnlyHyperlaneConnections(token)) {
10
+ return new EvmHypNativeAdapter(chainName, multiProvider, {
11
+ token: addressOrDenom,
12
+ });
13
+ }
14
+ if (standard === standards.hypNative) {
15
+ return new EvmHypNativeAdapter(chainName, multiProvider, {
16
+ token: addressOrDenom,
17
+ });
18
+ }
19
+ if (standards.hypCollateral.some((candidate) => candidate === standard)) {
20
+ return new EvmMovableCollateralAdapter(chainName, multiProvider, {
21
+ token: addressOrDenom,
22
+ });
23
+ }
24
+ if (standard === standards.hypCrossCollateralRouter) {
25
+ return new EvmHypCrossCollateralAdapter(chainName, multiProvider, {
26
+ token: addressOrDenom,
27
+ });
28
+ }
29
+ if (standard === standards.hypRebaseCollateral) {
30
+ return new EvmHypRebaseCollateralAdapter(chainName, multiProvider, {
31
+ token: addressOrDenom,
32
+ });
33
+ }
34
+ if (standard === standards.hypCollateralFiat) {
35
+ return new EvmHypCollateralFiatAdapter(chainName, multiProvider, {
36
+ token: addressOrDenom,
37
+ });
38
+ }
39
+ if (standard === standards.hypSynthetic) {
40
+ return new EvmHypSyntheticAdapter(chainName, multiProvider, {
41
+ token: addressOrDenom,
42
+ });
43
+ }
44
+ if (standard === standards.hypSyntheticRebase) {
45
+ return new EvmHypSyntheticRebaseAdapter(chainName, multiProvider, {
46
+ token: addressOrDenom,
47
+ });
48
+ }
49
+ if (standards.hypXerc20.some((candidate) => candidate === standard)) {
50
+ return new EvmHypXERC20Adapter(chainName, multiProvider, {
51
+ token: addressOrDenom,
52
+ });
53
+ }
54
+ if (standards.hypXerc20Lockbox.some((candidate) => candidate === standard)) {
55
+ return new EvmHypXERC20LockboxAdapter(chainName, multiProvider, {
56
+ token: addressOrDenom,
57
+ });
58
+ }
59
+ return undefined;
60
+ }
61
+ //# sourceMappingURL=evmLikeHyp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evmLikeHyp.js","sourceRoot":"","sources":["../../../src/token/adapters/evmLikeHyp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { Address } from '@hyperlane-xyz/utils';
2
+ import type { MultiProviderAdapter } from '../../providers/MultiProviderAdapter.js';
3
+ import type { ChainName } from '../../types.js';
4
+ import type { TokenConnection } from '../TokenConnection.js';
5
+ import type { TokenStandard } from '../TokenStandard.js';
6
+ export interface HypTokenAdapterInput {
7
+ chainName: ChainName;
8
+ addressOrDenom: Address | string;
9
+ standard?: TokenStandard | string;
10
+ collateralAddressOrDenom?: Address | string;
11
+ connections?: Array<TokenConnection>;
12
+ }
13
+ export declare function hasOnlyHyperlaneConnections(token: HypTokenAdapterInput): boolean;
14
+ export declare function hasChainMetadata(multiProvider: MultiProviderAdapter, chainName: ChainName): boolean;
15
+ //# sourceMappingURL=hypTokenAdapterUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hypTokenAdapterUtils.d.ts","sourceRoot":"","sources":["../../../src/token/adapters/hypTokenAdapterUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,SAAS,CAAC;IACrB,cAAc,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC,QAAQ,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC;IAClC,wBAAwB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5C,WAAW,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;CACtC;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,oBAAoB,WAQtE;AAED,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,oBAAoB,EACnC,SAAS,EAAE,SAAS,GACnB,OAAO,CAET"}
@@ -0,0 +1,9 @@
1
+ import { TokenConnectionType } from '../TokenConnection.js';
2
+ export function hasOnlyHyperlaneConnections(token) {
3
+ return (!!token.connections?.length &&
4
+ token.connections.every((connection) => !connection.type || connection.type === TokenConnectionType.Hyperlane));
5
+ }
6
+ export function hasChainMetadata(multiProvider, chainName) {
7
+ return !!multiProvider.tryGetChainMetadata(chainName);
8
+ }
9
+ //# sourceMappingURL=hypTokenAdapterUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hypTokenAdapterUtils.js","sourceRoot":"","sources":["../../../src/token/adapters/hypTokenAdapterUtils.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAW5D,MAAM,UAAU,2BAA2B,CAAC,KAA2B;IACrE,OAAO,CACL,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM;QAC3B,KAAK,CAAC,WAAW,CAAC,KAAK,CACrB,CAAC,UAAU,EAAE,EAAE,CACb,CAAC,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,KAAK,mBAAmB,CAAC,SAAS,CACxE,CACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,aAAmC,EACnC,SAAoB;IAEpB,OAAO,CAAC,CAAC,aAAa,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;AACxD,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { MultiProviderAdapter } from '../../providers/MultiProviderAdapter.js';
2
+ import type { IHypTokenAdapter } from './ITokenAdapter.js';
3
+ import { type HypTokenAdapterInput } from './hypTokenAdapterUtils.js';
4
+ export declare function createRadixHypAdapter(multiProvider: MultiProviderAdapter<{
5
+ mailbox?: string;
6
+ }>, token: HypTokenAdapterInput): IHypTokenAdapter<unknown> | undefined;
7
+ //# sourceMappingURL=radixHyp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radixHyp.d.ts","sourceRoot":"","sources":["../../../src/token/adapters/radixHyp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAMpF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EACL,KAAK,oBAAoB,EAE1B,MAAM,2BAA2B,CAAC;AAGnC,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,oBAAoB,CAAC;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EACzD,KAAK,EAAE,oBAAoB,GAC1B,gBAAgB,CAAC,OAAO,CAAC,GAAG,SAAS,CAmBvC"}
@@ -0,0 +1,22 @@
1
+ import { RadixHypCollateralAdapter, RadixHypSyntheticAdapter, } from './RadixTokenAdapter.js';
2
+ import { hasChainMetadata, } from './hypTokenAdapterUtils.js';
3
+ import { TokenStandard } from '../TokenStandard.js';
4
+ export function createRadixHypAdapter(multiProvider, token) {
5
+ const { standard, chainName, addressOrDenom } = token;
6
+ if (!standard || !hasChainMetadata(multiProvider, chainName)) {
7
+ return undefined;
8
+ }
9
+ switch (standard) {
10
+ case TokenStandard.RadixHypCollateral:
11
+ return new RadixHypCollateralAdapter(chainName, multiProvider, {
12
+ token: addressOrDenom,
13
+ });
14
+ case TokenStandard.RadixHypSynthetic:
15
+ return new RadixHypSyntheticAdapter(chainName, multiProvider, {
16
+ token: addressOrDenom,
17
+ });
18
+ default:
19
+ return undefined;
20
+ }
21
+ }
22
+ //# sourceMappingURL=radixHyp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radixHyp.js","sourceRoot":"","sources":["../../../src/token/adapters/radixHyp.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAEL,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,UAAU,qBAAqB,CACnC,aAAyD,EACzD,KAA2B;IAE3B,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAEtD,IAAI,CAAC,QAAQ,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE,CAAC;QAC7D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,aAAa,CAAC,kBAAkB;YACnC,OAAO,IAAI,yBAAyB,CAAC,SAAS,EAAE,aAAa,EAAE;gBAC7D,KAAK,EAAE,cAAc;aACtB,CAAC,CAAC;QACL,KAAK,aAAa,CAAC,iBAAiB;YAClC,OAAO,IAAI,wBAAwB,CAAC,SAAS,EAAE,aAAa,EAAE;gBAC5D,KAAK,EAAE,cAAc;aACtB,CAAC,CAAC;QACL;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { MultiProviderAdapter } from '../../providers/MultiProviderAdapter.js';
2
+ import type { IHypTokenAdapter } from './ITokenAdapter.js';
3
+ import { type HypTokenAdapterInput } from './hypTokenAdapterUtils.js';
4
+ export declare function createSealevelHypAdapter(multiProvider: MultiProviderAdapter<{
5
+ mailbox?: string;
6
+ }>, token: HypTokenAdapterInput): IHypTokenAdapter<unknown> | undefined;
7
+ //# sourceMappingURL=sealevelHyp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sealevelHyp.d.ts","sourceRoot":"","sources":["../../../src/token/adapters/sealevelHyp.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAOpF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EACL,KAAK,oBAAoB,EAE1B,MAAM,2BAA2B,CAAC;AAGnC,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,oBAAoB,CAAC;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EACzD,KAAK,EAAE,oBAAoB,GAC1B,gBAAgB,CAAC,OAAO,CAAC,GAAG,SAAS,CA0CvC"}
@@ -0,0 +1,38 @@
1
+ import { assert } from '@hyperlane-xyz/utils';
2
+ import { SealevelHypCollateralAdapter, SealevelHypNativeAdapter, SealevelHypSyntheticAdapter, } from './SealevelTokenAdapter.js';
3
+ import { hasChainMetadata, } from './hypTokenAdapterUtils.js';
4
+ import { TokenStandard } from '../TokenStandard.js';
5
+ export function createSealevelHypAdapter(multiProvider, token) {
6
+ const { standard, chainName, addressOrDenom, collateralAddressOrDenom } = token;
7
+ if (!standard || !hasChainMetadata(multiProvider, chainName)) {
8
+ return undefined;
9
+ }
10
+ const mailbox = multiProvider.getChainMetadata(chainName).mailbox;
11
+ switch (standard) {
12
+ case TokenStandard.SealevelHypNative:
13
+ assert(mailbox, 'Mailbox required for Sealevel hyp tokens');
14
+ return new SealevelHypNativeAdapter(chainName, multiProvider, {
15
+ warpRouter: addressOrDenom,
16
+ mailbox,
17
+ });
18
+ case TokenStandard.SealevelHypCollateral:
19
+ assert(mailbox, 'Mailbox required for Sealevel hyp tokens');
20
+ assert(collateralAddressOrDenom, 'collateralAddressOrDenom required for Sealevel hyp collateral tokens');
21
+ return new SealevelHypCollateralAdapter(chainName, multiProvider, {
22
+ warpRouter: addressOrDenom,
23
+ token: collateralAddressOrDenom,
24
+ mailbox,
25
+ });
26
+ case TokenStandard.SealevelHypSynthetic:
27
+ assert(mailbox, 'Mailbox required for Sealevel hyp tokens');
28
+ assert(collateralAddressOrDenom, 'collateralAddressOrDenom required for Sealevel hyp synthetic tokens');
29
+ return new SealevelHypSyntheticAdapter(chainName, multiProvider, {
30
+ warpRouter: addressOrDenom,
31
+ token: collateralAddressOrDenom,
32
+ mailbox,
33
+ });
34
+ default:
35
+ return undefined;
36
+ }
37
+ }
38
+ //# sourceMappingURL=sealevelHyp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sealevelHyp.js","sourceRoot":"","sources":["../../../src/token/adapters/sealevelHyp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAI9C,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAEL,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,UAAU,wBAAwB,CACtC,aAAyD,EACzD,KAA2B;IAE3B,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,wBAAwB,EAAE,GACrE,KAAK,CAAC;IAER,IAAI,CAAC,QAAQ,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE,CAAC;QAC7D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAG,aAAa,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC;IAElE,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,aAAa,CAAC,iBAAiB;YAClC,MAAM,CAAC,OAAO,EAAE,0CAA0C,CAAC,CAAC;YAC5D,OAAO,IAAI,wBAAwB,CAAC,SAAS,EAAE,aAAa,EAAE;gBAC5D,UAAU,EAAE,cAAc;gBAC1B,OAAO;aACR,CAAC,CAAC;QACL,KAAK,aAAa,CAAC,qBAAqB;YACtC,MAAM,CAAC,OAAO,EAAE,0CAA0C,CAAC,CAAC;YAC5D,MAAM,CACJ,wBAAwB,EACxB,sEAAsE,CACvE,CAAC;YACF,OAAO,IAAI,4BAA4B,CAAC,SAAS,EAAE,aAAa,EAAE;gBAChE,UAAU,EAAE,cAAc;gBAC1B,KAAK,EAAE,wBAAwB;gBAC/B,OAAO;aACR,CAAC,CAAC;QACL,KAAK,aAAa,CAAC,oBAAoB;YACrC,MAAM,CAAC,OAAO,EAAE,0CAA0C,CAAC,CAAC;YAC5D,MAAM,CACJ,wBAAwB,EACxB,qEAAqE,CACtE,CAAC;YACF,OAAO,IAAI,2BAA2B,CAAC,SAAS,EAAE,aAAa,EAAE;gBAC/D,UAAU,EAAE,cAAc;gBAC1B,KAAK,EAAE,wBAAwB;gBAC/B,OAAO;aACR,CAAC,CAAC;QACL;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { MultiProviderAdapter } from '../../providers/MultiProviderAdapter.js';
2
+ import type { IHypTokenAdapter } from './ITokenAdapter.js';
3
+ import { type HypTokenAdapterInput } from './hypTokenAdapterUtils.js';
4
+ export declare function createStarknetHypAdapter(multiProvider: MultiProviderAdapter<{
5
+ mailbox?: string;
6
+ }>, token: HypTokenAdapterInput): IHypTokenAdapter<unknown> | undefined;
7
+ //# sourceMappingURL=starknetHyp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"starknetHyp.d.ts","sourceRoot":"","sources":["../../../src/token/adapters/starknetHyp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AASpF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EACL,KAAK,oBAAoB,EAE1B,MAAM,2BAA2B,CAAC;AAGnC,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,oBAAoB,CAAC;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EACzD,KAAK,EAAE,oBAAoB,GAC1B,gBAAgB,CAAC,OAAO,CAAC,GAAG,SAAS,CAkCvC"}
@@ -0,0 +1,35 @@
1
+ import { isStarknetFeeToken } from '../../utils/starknet.js';
2
+ import { StarknetHypCollateralAdapter, StarknetHypFeeAdapter, StarknetHypNativeAdapter, StarknetHypSyntheticAdapter, } from './StarknetTokenAdapter.js';
3
+ import { hasChainMetadata, } from './hypTokenAdapterUtils.js';
4
+ import { TokenStandard } from '../TokenStandard.js';
5
+ export function createStarknetHypAdapter(multiProvider, token) {
6
+ const { standard, chainName, addressOrDenom } = token;
7
+ if (!standard || !hasChainMetadata(multiProvider, chainName)) {
8
+ return undefined;
9
+ }
10
+ if (isStarknetFeeToken(chainName, addressOrDenom) &&
11
+ (standard === TokenStandard.StarknetHypNative ||
12
+ standard === TokenStandard.StarknetHypSynthetic ||
13
+ standard === TokenStandard.StarknetHypCollateral)) {
14
+ return new StarknetHypFeeAdapter(chainName, multiProvider, {
15
+ warpRouter: addressOrDenom,
16
+ });
17
+ }
18
+ switch (standard) {
19
+ case TokenStandard.StarknetHypNative:
20
+ return new StarknetHypNativeAdapter(chainName, multiProvider, {
21
+ warpRouter: addressOrDenom,
22
+ });
23
+ case TokenStandard.StarknetHypSynthetic:
24
+ return new StarknetHypSyntheticAdapter(chainName, multiProvider, {
25
+ warpRouter: addressOrDenom,
26
+ });
27
+ case TokenStandard.StarknetHypCollateral:
28
+ return new StarknetHypCollateralAdapter(chainName, multiProvider, {
29
+ warpRouter: addressOrDenom,
30
+ });
31
+ default:
32
+ return undefined;
33
+ }
34
+ }
35
+ //# sourceMappingURL=starknetHyp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"starknetHyp.js","sourceRoot":"","sources":["../../../src/token/adapters/starknetHyp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EACL,4BAA4B,EAC5B,qBAAqB,EACrB,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAEL,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,UAAU,wBAAwB,CACtC,aAAyD,EACzD,KAA2B;IAE3B,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAEtD,IAAI,CAAC,QAAQ,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE,CAAC;QAC7D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IACE,kBAAkB,CAAC,SAAS,EAAE,cAAc,CAAC;QAC7C,CAAC,QAAQ,KAAK,aAAa,CAAC,iBAAiB;YAC3C,QAAQ,KAAK,aAAa,CAAC,oBAAoB;YAC/C,QAAQ,KAAK,aAAa,CAAC,qBAAqB,CAAC,EACnD,CAAC;QACD,OAAO,IAAI,qBAAqB,CAAC,SAAS,EAAE,aAAa,EAAE;YACzD,UAAU,EAAE,cAAc;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,aAAa,CAAC,iBAAiB;YAClC,OAAO,IAAI,wBAAwB,CAAC,SAAS,EAAE,aAAa,EAAE;gBAC5D,UAAU,EAAE,cAAc;aAC3B,CAAC,CAAC;QACL,KAAK,aAAa,CAAC,oBAAoB;YACrC,OAAO,IAAI,2BAA2B,CAAC,SAAS,EAAE,aAAa,EAAE;gBAC/D,UAAU,EAAE,cAAc;aAC3B,CAAC,CAAC;QACL,KAAK,aAAa,CAAC,qBAAqB;YACtC,OAAO,IAAI,4BAA4B,CAAC,SAAS,EAAE,aAAa,EAAE;gBAChE,UAAU,EAAE,cAAc;aAC3B,CAAC,CAAC;QACL;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { IHypTokenAdapter } from './ITokenAdapter.js';
2
+ import type { HypTokenAdapterInput } from './hypTokenAdapterUtils.js';
3
+ import type { MultiProviderAdapter } from '../../providers/MultiProviderAdapter.js';
4
+ export declare function createTronHypAdapter(multiProvider: MultiProviderAdapter<{
5
+ mailbox?: string;
6
+ }>, token: HypTokenAdapterInput): IHypTokenAdapter<unknown> | undefined;
7
+ //# sourceMappingURL=tronHyp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tronHyp.d.ts","sourceRoot":"","sources":["../../../src/token/adapters/tronHyp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAGpF,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,oBAAoB,CAAC;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EACzD,KAAK,EAAE,oBAAoB,GAC1B,gBAAgB,CAAC,OAAO,CAAC,GAAG,SAAS,CAmBvC"}
@@ -0,0 +1,23 @@
1
+ import { createEvmLikeHypAdapter } from './evmLikeHyp.js';
2
+ import { TokenStandard } from '../TokenStandard.js';
3
+ export function createTronHypAdapter(multiProvider, token) {
4
+ return createEvmLikeHypAdapter(multiProvider, token, {
5
+ native: TokenStandard.TronNative,
6
+ hypNative: TokenStandard.TronHypNative,
7
+ hypCollateral: [
8
+ TokenStandard.TronHypCollateral,
9
+ TokenStandard.TronHypOwnerCollateral,
10
+ ],
11
+ hypCrossCollateralRouter: TokenStandard.TronHypCrossCollateralRouter,
12
+ hypRebaseCollateral: TokenStandard.TronHypRebaseCollateral,
13
+ hypCollateralFiat: TokenStandard.TronHypCollateralFiat,
14
+ hypSynthetic: TokenStandard.TronHypSynthetic,
15
+ hypSyntheticRebase: TokenStandard.TronHypSyntheticRebase,
16
+ hypXerc20: [TokenStandard.TronHypXERC20, TokenStandard.TronHypVSXERC20],
17
+ hypXerc20Lockbox: [
18
+ TokenStandard.TronHypXERC20Lockbox,
19
+ TokenStandard.TronHypVSXERC20Lockbox,
20
+ ],
21
+ });
22
+ }
23
+ //# sourceMappingURL=tronHyp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tronHyp.js","sourceRoot":"","sources":["../../../src/token/adapters/tronHyp.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,UAAU,oBAAoB,CAClC,aAAyD,EACzD,KAA2B;IAE3B,OAAO,uBAAuB,CAAC,aAAa,EAAE,KAAK,EAAE;QACnD,MAAM,EAAE,aAAa,CAAC,UAAU;QAChC,SAAS,EAAE,aAAa,CAAC,aAAa;QACtC,aAAa,EAAE;YACb,aAAa,CAAC,iBAAiB;YAC/B,aAAa,CAAC,sBAAsB;SACrC;QACD,wBAAwB,EAAE,aAAa,CAAC,4BAA4B;QACpE,mBAAmB,EAAE,aAAa,CAAC,uBAAuB;QAC1D,iBAAiB,EAAE,aAAa,CAAC,qBAAqB;QACtD,YAAY,EAAE,aAAa,CAAC,gBAAgB;QAC5C,kBAAkB,EAAE,aAAa,CAAC,sBAAsB;QACxD,SAAS,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,aAAa,CAAC,eAAe,CAAC;QACvE,gBAAgB,EAAE;YAChB,aAAa,CAAC,oBAAoB;YAClC,aAAa,CAAC,sBAAsB;SACrC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -645,7 +645,7 @@ export declare const CosmosChainSchema: z.ZodObject<{
645
645
  extra_codecs: z.ZodOptional<z.ZodArray<z.ZodEnum<["ethermint", "injective"]>, "many">>;
646
646
  }, "strip", z.ZodTypeAny, {
647
647
  chain_name: string;
648
- chain_type: "starknet" | "unknown" | "eip155" | "cosmos" | "bip122" | "polkadot" | "solana" | "algorand" | "arweave" | "ergo" | "fil" | "hedera" | "monero" | "reef" | "stacks" | "stellar" | "tezos" | "vechain" | "waves" | "xrpl";
648
+ chain_type: "starknet" | "unknown" | "arweave" | "eip155" | "cosmos" | "bip122" | "polkadot" | "solana" | "algorand" | "ergo" | "fil" | "hedera" | "monero" | "reef" | "stacks" | "stellar" | "tezos" | "vechain" | "waves" | "xrpl";
649
649
  status?: "live" | "upcoming" | "killed" | undefined;
650
650
  fees?: {
651
651
  fee_tokens: {
@@ -803,7 +803,7 @@ export declare const CosmosChainSchema: z.ZodObject<{
803
803
  extra_codecs?: ("ethermint" | "injective")[] | undefined;
804
804
  }, {
805
805
  chain_name: string;
806
- chain_type: "starknet" | "unknown" | "eip155" | "cosmos" | "bip122" | "polkadot" | "solana" | "algorand" | "arweave" | "ergo" | "fil" | "hedera" | "monero" | "reef" | "stacks" | "stellar" | "tezos" | "vechain" | "waves" | "xrpl";
806
+ chain_type: "starknet" | "unknown" | "arweave" | "eip155" | "cosmos" | "bip122" | "polkadot" | "solana" | "algorand" | "ergo" | "fil" | "hedera" | "monero" | "reef" | "stacks" | "stellar" | "tezos" | "vechain" | "waves" | "xrpl";
807
807
  status?: "live" | "upcoming" | "killed" | undefined;
808
808
  fees?: {
809
809
  fee_tokens: {
@@ -962,7 +962,7 @@ export declare const CosmosChainSchema: z.ZodObject<{
962
962
  }>;
963
963
  export declare function getCosmosRegistryChain(chain: string): Promise<{
964
964
  chain_name: string;
965
- chain_type: "starknet" | "unknown" | "eip155" | "cosmos" | "bip122" | "polkadot" | "solana" | "algorand" | "arweave" | "ergo" | "fil" | "hedera" | "monero" | "reef" | "stacks" | "stellar" | "tezos" | "vechain" | "waves" | "xrpl";
965
+ chain_type: "starknet" | "unknown" | "arweave" | "eip155" | "cosmos" | "bip122" | "polkadot" | "solana" | "algorand" | "ergo" | "fil" | "hedera" | "monero" | "reef" | "stacks" | "stellar" | "tezos" | "vechain" | "waves" | "xrpl";
966
966
  status?: "live" | "upcoming" | "killed" | undefined;
967
967
  fees?: {
968
968
  fee_tokens: {
@@ -15,10 +15,18 @@ export type NormalizedScale = {
15
15
  */
16
16
  export type ScaleInput = TokenMetadata['scale'];
17
17
  export declare const DEFAULT_SCALE: NormalizedScale;
18
+ export type ScaleAlignment = {
19
+ localAmount: bigint;
20
+ messageAmount: bigint;
21
+ };
18
22
  /**
19
23
  * Converts any accepted scale variant to NormalizedScale (bigint).
20
24
  */
21
25
  export declare function normalizeScale(scale: ScaleInput | undefined): NormalizedScale;
26
+ export declare function messageAmountFromLocal(localAmount: bigint, scale: ScaleInput | undefined): bigint;
27
+ export declare function localAmountFromMessage(messageAmount: bigint, scale: ScaleInput | undefined): bigint;
28
+ export declare function minLocalAmountForMessage(messageAmount: bigint, scale: ScaleInput | undefined): bigint;
29
+ export declare function alignLocalAmountToMessage(localAmount: bigint, scale: ScaleInput | undefined): ScaleAlignment;
22
30
  /**
23
31
  * Compares two scale values for equality without precision loss.
24
32
  * Accepts any scale variant (number, {number,number}, {bigint,bigint}, undefined).
@@ -1 +1 @@
1
- {"version":3,"file":"decimals.d.ts","sourceRoot":"","sources":["../../src/utils/decimals.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,EACb,oCAAoC,EACrC,MAAM,mBAAmB,CAAC;AAG3B;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzE;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;AAEhD,eAAO,MAAM,aAAa,EAAE,eAG3B,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,eAAe,CAS7E;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,CAAC,EAAE,UAAU,GAAG,SAAS,EACzB,CAAC,EAAE,UAAU,GAAG,SAAS,GACxB,OAAO,CAIT;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,oCAAoC,GAC3E,OAAO,CA4CT"}
1
+ {"version":3,"file":"decimals.d.ts","sourceRoot":"","sources":["../../src/utils/decimals.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,EACb,oCAAoC,EACrC,MAAM,mBAAmB,CAAC;AAG3B;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzE;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;AAEhD,eAAO,MAAM,aAAa,EAAE,eAG3B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,eAAe,CAS7E;AAgBD,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,UAAU,GAAG,SAAS,GAC5B,MAAM,CAKR;AAED,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,UAAU,GAAG,SAAS,GAC5B,MAAM,CAKR;AAED,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,UAAU,GAAG,SAAS,GAC5B,MAAM,CAKR;AAED,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,UAAU,GAAG,SAAS,GAC5B,cAAc,CAchB;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,CAAC,EAAE,UAAU,GAAG,SAAS,EACzB,CAAC,EAAE,UAAU,GAAG,SAAS,GACxB,OAAO,CAIT;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,oCAAoC,GAC3E,OAAO,CA4CT"}
@@ -17,6 +17,48 @@ export function normalizeScale(scale) {
17
17
  denominator: BigInt(scale.denominator),
18
18
  };
19
19
  }
20
+ function assertValidScale(scale) {
21
+ assert(scale.numerator > 0n && scale.denominator > 0n, `Scale must be positive, got ${scale.numerator}/${scale.denominator}`);
22
+ }
23
+ function ceilDiv(numerator, denominator) {
24
+ assert(denominator > 0n, 'Denominator must be positive');
25
+ assert(numerator >= 0n, 'Numerator must be non-negative');
26
+ if (numerator === 0n)
27
+ return 0n;
28
+ return (numerator + denominator - 1n) / denominator;
29
+ }
30
+ export function messageAmountFromLocal(localAmount, scale) {
31
+ assert(localAmount >= 0n, 'Local amount must be non-negative');
32
+ const normalized = normalizeScale(scale);
33
+ assertValidScale(normalized);
34
+ return (localAmount * normalized.numerator) / normalized.denominator;
35
+ }
36
+ export function localAmountFromMessage(messageAmount, scale) {
37
+ assert(messageAmount >= 0n, 'Message amount must be non-negative');
38
+ const normalized = normalizeScale(scale);
39
+ assertValidScale(normalized);
40
+ return (messageAmount * normalized.denominator) / normalized.numerator;
41
+ }
42
+ export function minLocalAmountForMessage(messageAmount, scale) {
43
+ assert(messageAmount >= 0n, 'Message amount must be non-negative');
44
+ const normalized = normalizeScale(scale);
45
+ assertValidScale(normalized);
46
+ return ceilDiv(messageAmount * normalized.denominator, normalized.numerator);
47
+ }
48
+ export function alignLocalAmountToMessage(localAmount, scale) {
49
+ assert(localAmount >= 0n, 'Local amount must be non-negative');
50
+ const messageAmount = messageAmountFromLocal(localAmount, scale);
51
+ if (messageAmount === 0n) {
52
+ return {
53
+ localAmount: 0n,
54
+ messageAmount: 0n,
55
+ };
56
+ }
57
+ return {
58
+ localAmount: minLocalAmountForMessage(messageAmount, scale),
59
+ messageAmount,
60
+ };
61
+ }
20
62
  /**
21
63
  * Compares two scale values for equality without precision loss.
22
64
  * Accepts any scale variant (number, {number,number}, {bigint,bigint}, undefined).
@@ -1 +1 @@
1
- {"version":3,"file":"decimals.js","sourceRoot":"","sources":["../../src/utils/decimals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decimals.js","sourceRoot":"","sources":["../../src/utils/decimals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAsBtD,MAAM,CAAC,MAAM,aAAa,GAAoB;IAC5C,SAAS,EAAE,EAAE;IACb,WAAW,EAAE,EAAE;CAChB,CAAC;AAOF;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,KAA6B;IAC1D,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,aAAa,CAAC;IAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;IACvD,CAAC;IACD,OAAO;QACL,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;QAClC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;KACvC,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAsB;IAC9C,MAAM,CACJ,KAAK,CAAC,SAAS,GAAG,EAAE,IAAI,KAAK,CAAC,WAAW,GAAG,EAAE,EAC9C,+BAA+B,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,WAAW,EAAE,CACtE,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,SAAiB,EAAE,WAAmB;IACrD,MAAM,CAAC,WAAW,GAAG,EAAE,EAAE,8BAA8B,CAAC,CAAC;IACzD,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,gCAAgC,CAAC,CAAC;IAC1D,IAAI,SAAS,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IAChC,OAAO,CAAC,SAAS,GAAG,WAAW,GAAG,EAAE,CAAC,GAAG,WAAW,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,WAAmB,EACnB,KAA6B;IAE7B,MAAM,CAAC,WAAW,IAAI,EAAE,EAAE,mCAAmC,CAAC,CAAC;IAC/D,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACzC,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC7B,OAAO,CAAC,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,aAAqB,EACrB,KAA6B;IAE7B,MAAM,CAAC,aAAa,IAAI,EAAE,EAAE,qCAAqC,CAAC,CAAC;IACnE,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACzC,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC7B,OAAO,CAAC,aAAa,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,aAAqB,EACrB,KAA6B;IAE7B,MAAM,CAAC,aAAa,IAAI,EAAE,EAAE,qCAAqC,CAAC,CAAC;IACnE,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACzC,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC7B,OAAO,OAAO,CAAC,aAAa,GAAG,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,WAAmB,EACnB,KAA6B;IAE7B,MAAM,CAAC,WAAW,IAAI,EAAE,EAAE,mCAAmC,CAAC,CAAC;IAC/D,MAAM,aAAa,GAAG,sBAAsB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACjE,IAAI,aAAa,KAAK,EAAE,EAAE,CAAC;QACzB,OAAO;YACL,WAAW,EAAE,EAAE;YACf,aAAa,EAAE,EAAE;SAClB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,WAAW,EAAE,wBAAwB,CAAC,aAAa,EAAE,KAAK,CAAC;QAC3D,aAAa;KACd,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CACzB,CAAyB,EACzB,CAAyB;IAEzB,MAAM,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAC7B,OAAO,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,WAAW,KAAK,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,WAAW,CAAC;AACzE,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,WAAW,CACzB,SAA4E;IAE5E,MAAM,uBAAuB,GAC3B,SAAS,YAAY,GAAG;QACtB,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QACzC,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAC5B,MAAM,CAAC,uBAAuB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QAChD,MAAM,CACJ,MAAM,CAAC,QAAQ,IAAI,IAAI,EACvB,sDAAsD,KAAK,EAAE,CAC9D,CAAC;QACF,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IAC5D,CAAC,CAAC,CACH,CAAC;IAEF,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAErC,IAAI,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QACpD,MAAM,CAAC,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACjC,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAClC,WAAW,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAC3C,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,iDAAiD;IACjD,wDAAwD;IACxD,MAAM,CAAC,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,GAAG,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAE3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAElE,qDAAqD;QACrD,uEAAuE;QACvE,0EAA0E;QAC1E,IAAI,YAAY,GAAG,IAAI,CAAC,WAAW,KAAK,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YACxE,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,kBAAkB,CACzB,SAAyC;IAEzC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAC;YAClC,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { assert, expect } from 'chai';
2
2
  import { randomAddress } from '../test/testUtils.js';
3
3
  import { TokenType } from '../token/config.js';
4
- import { normalizeScale, scalesEqual, verifyScale } from './decimals.js';
4
+ import { alignLocalAmountToMessage, localAmountFromMessage, messageAmountFromLocal, minLocalAmountForMessage, normalizeScale, scalesEqual, verifyScale, } from './decimals.js';
5
5
  describe(normalizeScale.name, () => {
6
6
  it('should normalize undefined to DEFAULT_SCALE', () => {
7
7
  const result = normalizeScale(undefined);
@@ -57,6 +57,57 @@ describe(scalesEqual.name, () => {
57
57
  expect(scalesEqual(large, slightlyDifferent)).to.be.false;
58
58
  });
59
59
  });
60
+ describe('scale conversion helpers', () => {
61
+ it('converts local amount to message amount using floor rounding', () => {
62
+ expect(messageAmountFromLocal(5n, { numerator: 1n, denominator: 3n })).to.equal(1n);
63
+ expect(messageAmountFromLocal(2n, { numerator: 3n, denominator: 2n })).to.equal(3n);
64
+ });
65
+ it('converts message amount to local amount using inbound floor rounding', () => {
66
+ expect(localAmountFromMessage(7n, { numerator: 3n, denominator: 2n })).to.equal(4n);
67
+ expect(localAmountFromMessage(1n, { numerator: 1n, denominator: 3n })).to.equal(3n);
68
+ });
69
+ it('computes the minimum local amount needed to reach a message amount', () => {
70
+ expect(minLocalAmountForMessage(7n, { numerator: 3n, denominator: 2n })).to.equal(5n);
71
+ expect(minLocalAmountForMessage(2n, { numerator: 1n, denominator: 3n })).to.equal(6n);
72
+ });
73
+ it('rejects negative message amounts for ceil local conversion', () => {
74
+ expect(() => minLocalAmountForMessage(-1n, { numerator: 1n, denominator: 3n })).to.throw('Message amount must be non-negative');
75
+ });
76
+ it('aligns local amounts to exact message progress without leaking local dust', () => {
77
+ expect(alignLocalAmountToMessage(5n, { numerator: 1n, denominator: 3n })).to.deep.equal({
78
+ localAmount: 3n,
79
+ messageAmount: 1n,
80
+ });
81
+ expect(alignLocalAmountToMessage(5n, { numerator: 3n, denominator: 2n })).to.deep.equal({
82
+ localAmount: 5n,
83
+ messageAmount: 7n,
84
+ });
85
+ expect(alignLocalAmountToMessage(999999999999n, {
86
+ numerator: 1n,
87
+ denominator: 1000000000000n,
88
+ })).to.deep.equal({
89
+ localAmount: 0n,
90
+ messageAmount: 0n,
91
+ });
92
+ });
93
+ it('rejects negative local amounts for alignment', () => {
94
+ expect(() => alignLocalAmountToMessage(-1n, { numerator: 1n, denominator: 3n })).to.throw('Local amount must be non-negative');
95
+ });
96
+ it('returns identity for undefined scale', () => {
97
+ expect(messageAmountFromLocal(42n, undefined)).to.equal(42n);
98
+ expect(localAmountFromMessage(42n, undefined)).to.equal(42n);
99
+ });
100
+ it('handles zero amounts', () => {
101
+ expect(messageAmountFromLocal(0n, { numerator: 1n, denominator: 3n })).to.equal(0n);
102
+ expect(localAmountFromMessage(0n, { numerator: 3n, denominator: 2n })).to.equal(0n);
103
+ });
104
+ it('round-trips exact-divisible amounts', () => {
105
+ const scale = { numerator: 3n, denominator: 2n };
106
+ const local = 6n;
107
+ const message = messageAmountFromLocal(local, scale);
108
+ expect(localAmountFromMessage(message, scale)).to.equal(local);
109
+ });
110
+ });
60
111
  describe(verifyScale.name, () => {
61
112
  const TOKEN_NAME = 'TOKEN';
62
113
  const ETH_DECIMALS = 18;
@@ -1 +1 @@
1
- {"version":3,"file":"decimals.test.js","sourceRoot":"","sources":["../../src/utils/decimals.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decimals.test.js","sourceRoot":"","sources":["../../src/utils/decimals.test.ts"],"names":[],"mappings":"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"}