@vultisig/core-chain 0.10.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (307) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/Chain.d.ts +5 -1
  3. package/dist/Chain.d.ts.map +1 -1
  4. package/dist/Chain.js +2 -0
  5. package/dist/Chain.js.map +1 -1
  6. package/dist/ChainKind.d.ts +1 -0
  7. package/dist/ChainKind.d.ts.map +1 -1
  8. package/dist/ChainKind.js +1 -0
  9. package/dist/ChainKind.js.map +1 -1
  10. package/dist/chains/cardano/asset/cardanoAssetId.d.ts +14 -0
  11. package/dist/chains/cardano/asset/cardanoAssetId.d.ts.map +1 -0
  12. package/dist/chains/cardano/asset/cardanoAssetId.js +19 -0
  13. package/dist/chains/cardano/asset/cardanoAssetId.js.map +1 -0
  14. package/dist/chains/cardano/client/getCardanoAddressAssets.d.ts +10 -0
  15. package/dist/chains/cardano/client/getCardanoAddressAssets.d.ts.map +1 -0
  16. package/dist/chains/cardano/client/getCardanoAddressAssets.js +19 -0
  17. package/dist/chains/cardano/client/getCardanoAddressAssets.js.map +1 -0
  18. package/dist/chains/cardano/client/getCardanoAssetInfo.d.ts +23 -0
  19. package/dist/chains/cardano/client/getCardanoAssetInfo.d.ts.map +1 -0
  20. package/dist/chains/cardano/client/getCardanoAssetInfo.js +16 -0
  21. package/dist/chains/cardano/client/getCardanoAssetInfo.js.map +1 -0
  22. package/dist/chains/cardano/utxo/getCardanoExtendedUtxos.d.ts +20 -0
  23. package/dist/chains/cardano/utxo/getCardanoExtendedUtxos.d.ts.map +1 -0
  24. package/dist/chains/cardano/utxo/getCardanoExtendedUtxos.js +22 -0
  25. package/dist/chains/cardano/utxo/getCardanoExtendedUtxos.js.map +1 -0
  26. package/dist/chains/cardano/utxo/getCardanoUtxos.d.ts +2 -1
  27. package/dist/chains/cardano/utxo/getCardanoUtxos.d.ts.map +1 -1
  28. package/dist/chains/cardano/utxo/getCardanoUtxos.js +1 -3
  29. package/dist/chains/cardano/utxo/getCardanoUtxos.js.map +1 -1
  30. package/dist/chains/cosmos/computeCosmosTxReceiptFeeAmount.d.ts +14 -0
  31. package/dist/chains/cosmos/computeCosmosTxReceiptFeeAmount.d.ts.map +1 -0
  32. package/dist/chains/cosmos/computeCosmosTxReceiptFeeAmount.js +28 -0
  33. package/dist/chains/cosmos/computeCosmosTxReceiptFeeAmount.js.map +1 -0
  34. package/dist/chains/cosmos/qbtc/getQbtcAccountInfo.d.ts +9 -0
  35. package/dist/chains/cosmos/qbtc/getQbtcAccountInfo.d.ts.map +1 -0
  36. package/dist/chains/cosmos/qbtc/getQbtcAccountInfo.js +21 -0
  37. package/dist/chains/cosmos/qbtc/getQbtcAccountInfo.js.map +1 -0
  38. package/dist/chains/cosmos/qbtc/protoEncoding.d.ts +13 -0
  39. package/dist/chains/cosmos/qbtc/protoEncoding.d.ts.map +1 -0
  40. package/dist/chains/cosmos/qbtc/protoEncoding.js +52 -0
  41. package/dist/chains/cosmos/qbtc/protoEncoding.js.map +1 -0
  42. package/dist/chains/cosmos/qbtc/tendermintRpcUrl.d.ts +4 -0
  43. package/dist/chains/cosmos/qbtc/tendermintRpcUrl.d.ts.map +1 -0
  44. package/dist/chains/cosmos/qbtc/tendermintRpcUrl.js +4 -0
  45. package/dist/chains/cosmos/qbtc/tendermintRpcUrl.js.map +1 -0
  46. package/dist/chains/cosmos/sumFeeAmountForCosmosChainFeeDenom.d.ts +15 -0
  47. package/dist/chains/cosmos/sumFeeAmountForCosmosChainFeeDenom.d.ts.map +1 -0
  48. package/dist/chains/cosmos/sumFeeAmountForCosmosChainFeeDenom.js +22 -0
  49. package/dist/chains/cosmos/sumFeeAmountForCosmosChainFeeDenom.js.map +1 -0
  50. package/dist/chains/cosmos/thor/lp/affiliate.d.ts +16 -0
  51. package/dist/chains/cosmos/thor/lp/affiliate.d.ts.map +1 -0
  52. package/dist/chains/cosmos/thor/lp/affiliate.js +16 -0
  53. package/dist/chains/cosmos/thor/lp/affiliate.js.map +1 -0
  54. package/dist/chains/cosmos/thor/lp/index.d.ts +22 -0
  55. package/dist/chains/cosmos/thor/lp/index.d.ts.map +1 -0
  56. package/dist/chains/cosmos/thor/lp/index.js +18 -0
  57. package/dist/chains/cosmos/thor/lp/index.js.map +1 -0
  58. package/dist/chains/cosmos/thor/lp/memo.d.ts +41 -0
  59. package/dist/chains/cosmos/thor/lp/memo.d.ts.map +1 -0
  60. package/dist/chains/cosmos/thor/lp/memo.js +38 -0
  61. package/dist/chains/cosmos/thor/lp/memo.js.map +1 -0
  62. package/dist/chains/cosmos/thor/lp/payload.d.ts +46 -0
  63. package/dist/chains/cosmos/thor/lp/payload.d.ts.map +1 -0
  64. package/dist/chains/cosmos/thor/lp/payload.js +37 -0
  65. package/dist/chains/cosmos/thor/lp/payload.js.map +1 -0
  66. package/dist/chains/cosmos/thor/lp/pools.d.ts +46 -0
  67. package/dist/chains/cosmos/thor/lp/pools.d.ts.map +1 -0
  68. package/dist/chains/cosmos/thor/lp/pools.js +85 -0
  69. package/dist/chains/cosmos/thor/lp/pools.js.map +1 -0
  70. package/dist/chains/cosmos/thor/lp/position.d.ts +30 -0
  71. package/dist/chains/cosmos/thor/lp/position.d.ts.map +1 -0
  72. package/dist/chains/cosmos/thor/lp/position.js +58 -0
  73. package/dist/chains/cosmos/thor/lp/position.js.map +1 -0
  74. package/dist/chains/cosmos/thor/lp/validation.d.ts +13 -0
  75. package/dist/chains/cosmos/thor/lp/validation.d.ts.map +1 -0
  76. package/dist/chains/cosmos/thor/lp/validation.js +35 -0
  77. package/dist/chains/cosmos/thor/lp/validation.js.map +1 -0
  78. package/dist/chains/polkadot/dapp/PolkadotSignerPayload.d.ts +16 -0
  79. package/dist/chains/polkadot/dapp/PolkadotSignerPayload.d.ts.map +1 -0
  80. package/dist/chains/polkadot/dapp/PolkadotSignerPayload.js +2 -0
  81. package/dist/chains/polkadot/dapp/PolkadotSignerPayload.js.map +1 -0
  82. package/dist/chains/polkadot/dapp/constructSigningPayload.d.ts +12 -0
  83. package/dist/chains/polkadot/dapp/constructSigningPayload.d.ts.map +1 -0
  84. package/dist/chains/polkadot/dapp/constructSigningPayload.js +30 -0
  85. package/dist/chains/polkadot/dapp/constructSigningPayload.js.map +1 -0
  86. package/dist/chains/solana/getDynamicPriorityFeePrice.d.ts +3 -0
  87. package/dist/chains/solana/getDynamicPriorityFeePrice.d.ts.map +1 -0
  88. package/dist/chains/solana/getDynamicPriorityFeePrice.js +20 -0
  89. package/dist/chains/solana/getDynamicPriorityFeePrice.js.map +1 -0
  90. package/dist/chains/solana/jito.d.ts +6 -0
  91. package/dist/chains/solana/jito.d.ts.map +1 -0
  92. package/dist/chains/solana/jito.js +40 -0
  93. package/dist/chains/solana/jito.js.map +1 -0
  94. package/dist/chains/ton/address.d.ts +6 -0
  95. package/dist/chains/ton/address.d.ts.map +1 -0
  96. package/dist/chains/ton/address.js +17 -0
  97. package/dist/chains/ton/address.js.map +1 -0
  98. package/dist/chains/ton/api.d.ts +7 -2
  99. package/dist/chains/ton/api.d.ts.map +1 -1
  100. package/dist/chains/ton/api.js +16 -3
  101. package/dist/chains/ton/api.js.map +1 -1
  102. package/dist/chains/utxo/client/getDashUtxos.d.ts +3 -0
  103. package/dist/chains/utxo/client/getDashUtxos.d.ts.map +1 -0
  104. package/dist/chains/utxo/client/getDashUtxos.js +28 -0
  105. package/dist/chains/utxo/client/getDashUtxos.js.map +1 -0
  106. package/dist/chains/utxo/send/validateUtxoRequirements.d.ts +10 -1
  107. package/dist/chains/utxo/send/validateUtxoRequirements.d.ts.map +1 -1
  108. package/dist/chains/utxo/send/validateUtxoRequirements.js +5 -2
  109. package/dist/chains/utxo/send/validateUtxoRequirements.js.map +1 -1
  110. package/dist/chains/utxo/tx/ChainPlainUtxo.d.ts +6 -0
  111. package/dist/chains/utxo/tx/ChainPlainUtxo.d.ts.map +1 -0
  112. package/dist/chains/utxo/tx/ChainPlainUtxo.js +2 -0
  113. package/dist/chains/utxo/tx/ChainPlainUtxo.js.map +1 -0
  114. package/dist/chains/utxo/tx/getPsbtTransferInfo.js +1 -1
  115. package/dist/chains/utxo/tx/getPsbtTransferInfo.js.map +1 -1
  116. package/dist/chains/utxo/tx/getUtxos.d.ts +5 -3
  117. package/dist/chains/utxo/tx/getUtxos.d.ts.map +1 -1
  118. package/dist/chains/utxo/tx/getUtxos.js +7 -4
  119. package/dist/chains/utxo/tx/getUtxos.js.map +1 -1
  120. package/dist/coin/balance/index.d.ts.map +1 -1
  121. package/dist/coin/balance/index.js +2 -0
  122. package/dist/coin/balance/index.js.map +1 -1
  123. package/dist/coin/balance/resolvers/cardano.d.ts +1 -0
  124. package/dist/coin/balance/resolvers/cardano.d.ts.map +1 -1
  125. package/dist/coin/balance/resolvers/cardano.js +12 -0
  126. package/dist/coin/balance/resolvers/cardano.js.map +1 -1
  127. package/dist/coin/balance/resolvers/qbtc.d.ts +4 -0
  128. package/dist/coin/balance/resolvers/qbtc.d.ts.map +1 -0
  129. package/dist/coin/balance/resolvers/qbtc.js +13 -0
  130. package/dist/coin/balance/resolvers/qbtc.js.map +1 -0
  131. package/dist/coin/balance/resolvers/sui.d.ts.map +1 -1
  132. package/dist/coin/balance/resolvers/sui.js +1 -0
  133. package/dist/coin/balance/resolvers/sui.js.map +1 -1
  134. package/dist/coin/balance/resolvers/ton.d.ts.map +1 -1
  135. package/dist/coin/balance/resolvers/ton.js +11 -2
  136. package/dist/coin/balance/resolvers/ton.js.map +1 -1
  137. package/dist/coin/chainFeeCoin.d.ts.map +1 -1
  138. package/dist/coin/chainFeeCoin.js +6 -0
  139. package/dist/coin/chainFeeCoin.js.map +1 -1
  140. package/dist/coin/coinType.d.ts.map +1 -1
  141. package/dist/coin/coinType.js +1 -0
  142. package/dist/coin/coinType.js.map +1 -1
  143. package/dist/coin/find/CoinFinderChainKind.d.ts +1 -1
  144. package/dist/coin/find/CoinFinderChainKind.d.ts.map +1 -1
  145. package/dist/coin/find/CoinFinderChainKind.js +1 -1
  146. package/dist/coin/find/CoinFinderChainKind.js.map +1 -1
  147. package/dist/coin/find/index.d.ts.map +1 -1
  148. package/dist/coin/find/index.js +2 -0
  149. package/dist/coin/find/index.js.map +1 -1
  150. package/dist/coin/find/resolvers/cardano.d.ts +5 -0
  151. package/dist/coin/find/resolvers/cardano.d.ts.map +1 -0
  152. package/dist/coin/find/resolvers/cardano.js +17 -0
  153. package/dist/coin/find/resolvers/cardano.js.map +1 -0
  154. package/dist/coin/knownTokens/index.d.ts.map +1 -1
  155. package/dist/coin/knownTokens/index.js +74 -0
  156. package/dist/coin/knownTokens/index.js.map +1 -1
  157. package/dist/coin/token/metadata/chains.d.ts +1 -1
  158. package/dist/coin/token/metadata/chains.d.ts.map +1 -1
  159. package/dist/coin/token/metadata/chains.js +1 -0
  160. package/dist/coin/token/metadata/chains.js.map +1 -1
  161. package/dist/coin/token/metadata/index.d.ts.map +1 -1
  162. package/dist/coin/token/metadata/index.js +2 -0
  163. package/dist/coin/token/metadata/index.js.map +1 -1
  164. package/dist/coin/token/metadata/resolvers/cardano.d.ts +8 -0
  165. package/dist/coin/token/metadata/resolvers/cardano.d.ts.map +1 -0
  166. package/dist/coin/token/metadata/resolvers/cardano.js +20 -0
  167. package/dist/coin/token/metadata/resolvers/cardano.js.map +1 -0
  168. package/dist/publicKey/PublicKeys.d.ts +2 -2
  169. package/dist/publicKey/PublicKeys.d.ts.map +1 -1
  170. package/dist/publicKey/address/deriveQbtcAddress.d.ts +3 -0
  171. package/dist/publicKey/address/deriveQbtcAddress.d.ts.map +1 -0
  172. package/dist/publicKey/address/deriveQbtcAddress.js +11 -0
  173. package/dist/publicKey/address/deriveQbtcAddress.js.map +1 -0
  174. package/dist/publicKey/address/getChainAddress.d.ts +15 -0
  175. package/dist/publicKey/address/getChainAddress.d.ts.map +1 -0
  176. package/dist/publicKey/address/getChainAddress.js +20 -0
  177. package/dist/publicKey/address/getChainAddress.js.map +1 -0
  178. package/dist/publicKey/getPublicKey.d.ts.map +1 -1
  179. package/dist/publicKey/getPublicKey.js +6 -0
  180. package/dist/publicKey/getPublicKey.js.map +1 -1
  181. package/dist/publicKey/tw/getTwPublicKeyType.d.ts.map +1 -1
  182. package/dist/publicKey/tw/getTwPublicKeyType.js +3 -0
  183. package/dist/publicKey/tw/getTwPublicKeyType.js.map +1 -1
  184. package/dist/signing/SignatureAlgorithm.d.ts +3 -1
  185. package/dist/signing/SignatureAlgorithm.d.ts.map +1 -1
  186. package/dist/signing/SignatureAlgorithm.js +3 -0
  187. package/dist/signing/SignatureAlgorithm.js.map +1 -1
  188. package/dist/signing/SignatureFormat.d.ts.map +1 -1
  189. package/dist/signing/SignatureFormat.js +1 -0
  190. package/dist/signing/SignatureFormat.js.map +1 -1
  191. package/dist/swap/general/GeneralSwapQuote.d.ts +1 -0
  192. package/dist/swap/general/GeneralSwapQuote.d.ts.map +1 -1
  193. package/dist/swap/native/NativeSwapChain.d.ts +1 -2
  194. package/dist/swap/native/NativeSwapChain.d.ts.map +1 -1
  195. package/dist/swap/native/NativeSwapChain.js.map +1 -1
  196. package/dist/swap/native/utils/getNativeSwapDecimals.d.ts +8 -0
  197. package/dist/swap/native/utils/getNativeSwapDecimals.d.ts.map +1 -1
  198. package/dist/swap/native/utils/getNativeSwapDecimals.js +19 -4
  199. package/dist/swap/native/utils/getNativeSwapDecimals.js.map +1 -1
  200. package/dist/tw/signingOutput.d.ts +1 -0
  201. package/dist/tw/signingOutput.d.ts.map +1 -1
  202. package/dist/tw/signingOutput.js +1 -0
  203. package/dist/tw/signingOutput.js.map +1 -1
  204. package/dist/tx/broadcast/index.d.ts.map +1 -1
  205. package/dist/tx/broadcast/index.js +2 -0
  206. package/dist/tx/broadcast/index.js.map +1 -1
  207. package/dist/tx/broadcast/resolvers/qbtc.d.ts +4 -0
  208. package/dist/tx/broadcast/resolvers/qbtc.d.ts.map +1 -0
  209. package/dist/tx/broadcast/resolvers/qbtc.js +31 -0
  210. package/dist/tx/broadcast/resolvers/qbtc.js.map +1 -0
  211. package/dist/tx/broadcast/resolvers/solana.d.ts.map +1 -1
  212. package/dist/tx/broadcast/resolvers/solana.js +12 -1
  213. package/dist/tx/broadcast/resolvers/solana.js.map +1 -1
  214. package/dist/tx/hash/index.d.ts.map +1 -1
  215. package/dist/tx/hash/index.js +1 -0
  216. package/dist/tx/hash/index.js.map +1 -1
  217. package/dist/tx/hash/resolvers/cardano.d.ts.map +1 -1
  218. package/dist/tx/hash/resolvers/cardano.js +9 -5
  219. package/dist/tx/hash/resolvers/cardano.js.map +1 -1
  220. package/dist/tx/status/index.d.ts.map +1 -1
  221. package/dist/tx/status/index.js +2 -0
  222. package/dist/tx/status/index.js.map +1 -1
  223. package/dist/tx/status/resolvers/cosmos.d.ts.map +1 -1
  224. package/dist/tx/status/resolvers/cosmos.js +21 -8
  225. package/dist/tx/status/resolvers/cosmos.js.map +1 -1
  226. package/dist/tx/status/resolvers/qbtc.d.ts +4 -0
  227. package/dist/tx/status/resolvers/qbtc.d.ts.map +1 -0
  228. package/dist/tx/status/resolvers/qbtc.js +38 -0
  229. package/dist/tx/status/resolvers/qbtc.js.map +1 -0
  230. package/dist/tx/status/resolvers/ton.d.ts.map +1 -1
  231. package/dist/tx/status/resolvers/ton.js +4 -4
  232. package/dist/tx/status/resolvers/ton.js.map +1 -1
  233. package/dist/utils/getBlockExplorerUrl/index.d.ts.map +1 -1
  234. package/dist/utils/getBlockExplorerUrl/index.js +3 -0
  235. package/dist/utils/getBlockExplorerUrl/index.js.map +1 -1
  236. package/dist/utils/isValidAddress.d.ts.map +1 -1
  237. package/dist/utils/isValidAddress.js +10 -0
  238. package/dist/utils/isValidAddress.js.map +1 -1
  239. package/package.json +1439 -8
  240. package/dist/chains/evm/tx/incrementKeysignPayloadNonce.d.ts +0 -3
  241. package/dist/chains/evm/tx/incrementKeysignPayloadNonce.d.ts.map +0 -1
  242. package/dist/chains/evm/tx/incrementKeysignPayloadNonce.js +0 -17
  243. package/dist/chains/evm/tx/incrementKeysignPayloadNonce.js.map +0 -1
  244. package/dist/security/blockaid/tx/simulation/input/index.d.ts +0 -4
  245. package/dist/security/blockaid/tx/simulation/input/index.d.ts.map +0 -1
  246. package/dist/security/blockaid/tx/simulation/input/index.js +0 -26
  247. package/dist/security/blockaid/tx/simulation/input/index.js.map +0 -1
  248. package/dist/security/blockaid/tx/simulation/input/resolver.d.ts +0 -18
  249. package/dist/security/blockaid/tx/simulation/input/resolver.d.ts.map +0 -1
  250. package/dist/security/blockaid/tx/simulation/input/resolver.js +0 -2
  251. package/dist/security/blockaid/tx/simulation/input/resolver.js.map +0 -1
  252. package/dist/security/blockaid/tx/simulation/input/resolvers/evm.d.ts +0 -4
  253. package/dist/security/blockaid/tx/simulation/input/resolvers/evm.d.ts.map +0 -1
  254. package/dist/security/blockaid/tx/simulation/input/resolvers/evm.js +0 -68
  255. package/dist/security/blockaid/tx/simulation/input/resolvers/evm.js.map +0 -1
  256. package/dist/security/blockaid/tx/simulation/input/resolvers/solana.d.ts +0 -4
  257. package/dist/security/blockaid/tx/simulation/input/resolvers/solana.d.ts.map +0 -1
  258. package/dist/security/blockaid/tx/simulation/input/resolvers/solana.js +0 -31
  259. package/dist/security/blockaid/tx/simulation/input/resolvers/solana.js.map +0 -1
  260. package/dist/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.d.ts +0 -9
  261. package/dist/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.d.ts.map +0 -1
  262. package/dist/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.js +0 -50
  263. package/dist/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.js.map +0 -1
  264. package/dist/security/blockaid/tx/validation/input/index.d.ts +0 -4
  265. package/dist/security/blockaid/tx/validation/input/index.d.ts.map +0 -1
  266. package/dist/security/blockaid/tx/validation/input/index.js +0 -30
  267. package/dist/security/blockaid/tx/validation/input/index.js.map +0 -1
  268. package/dist/security/blockaid/tx/validation/input/resolver.d.ts +0 -16
  269. package/dist/security/blockaid/tx/validation/input/resolver.d.ts.map +0 -1
  270. package/dist/security/blockaid/tx/validation/input/resolver.js +0 -2
  271. package/dist/security/blockaid/tx/validation/input/resolver.js.map +0 -1
  272. package/dist/security/blockaid/tx/validation/input/resolvers/evm.d.ts +0 -4
  273. package/dist/security/blockaid/tx/validation/input/resolvers/evm.d.ts.map +0 -1
  274. package/dist/security/blockaid/tx/validation/input/resolvers/evm.js +0 -58
  275. package/dist/security/blockaid/tx/validation/input/resolvers/evm.js.map +0 -1
  276. package/dist/security/blockaid/tx/validation/input/resolvers/solana.d.ts +0 -4
  277. package/dist/security/blockaid/tx/validation/input/resolvers/solana.d.ts.map +0 -1
  278. package/dist/security/blockaid/tx/validation/input/resolvers/solana.js +0 -20
  279. package/dist/security/blockaid/tx/validation/input/resolvers/solana.js.map +0 -1
  280. package/dist/security/blockaid/tx/validation/input/resolvers/sui.d.ts +0 -4
  281. package/dist/security/blockaid/tx/validation/input/resolvers/sui.d.ts.map +0 -1
  282. package/dist/security/blockaid/tx/validation/input/resolvers/sui.js +0 -20
  283. package/dist/security/blockaid/tx/validation/input/resolvers/sui.js.map +0 -1
  284. package/dist/security/blockaid/tx/validation/input/resolvers/utxo.d.ts +0 -4
  285. package/dist/security/blockaid/tx/validation/input/resolvers/utxo.d.ts.map +0 -1
  286. package/dist/security/blockaid/tx/validation/input/resolvers/utxo.js +0 -19
  287. package/dist/security/blockaid/tx/validation/input/resolvers/utxo.js.map +0 -1
  288. package/dist/swap/native/utils/nativeSwapQuoteToSwapPayload.d.ts +0 -16
  289. package/dist/swap/native/utils/nativeSwapQuoteToSwapPayload.d.ts.map +0 -1
  290. package/dist/swap/native/utils/nativeSwapQuoteToSwapPayload.js +0 -31
  291. package/dist/swap/native/utils/nativeSwapQuoteToSwapPayload.js.map +0 -1
  292. package/dist/swap/utils/getSwapTrackingUrl.d.ts +0 -10
  293. package/dist/swap/utils/getSwapTrackingUrl.d.ts.map +0 -1
  294. package/dist/swap/utils/getSwapTrackingUrl.js +0 -29
  295. package/dist/swap/utils/getSwapTrackingUrl.js.map +0 -1
  296. package/dist/tx/compile/compileTx.d.ts +0 -14
  297. package/dist/tx/compile/compileTx.d.ts.map +0 -1
  298. package/dist/tx/compile/compileTx.js +0 -66
  299. package/dist/tx/compile/compileTx.js.map +0 -1
  300. package/dist/tx/preSigningHashes/index.d.ts +0 -10
  301. package/dist/tx/preSigningHashes/index.d.ts.map +0 -1
  302. package/dist/tx/preSigningHashes/index.js +0 -34
  303. package/dist/tx/preSigningHashes/index.js.map +0 -1
  304. package/dist/tx/signature/generateSignature.d.ts +0 -11
  305. package/dist/tx/signature/generateSignature.d.ts.map +0 -1
  306. package/dist/tx/signature/generateSignature.js +0 -20
  307. package/dist/tx/signature/generateSignature.js.map +0 -1
@@ -0,0 +1,30 @@
1
+ import { compactToU8a, hexToU8a, u8aConcat } from '@polkadot/util';
2
+ import { blake2AsU8a } from '@polkadot/util-crypto';
3
+ const polkadotSigningPayloadHashThreshold = 256;
4
+ /**
5
+ * Construct the raw signing payload bytes from a Polkadot SignerPayloadJSON.
6
+ *
7
+ * Follows the Polkadot extrinsic payload v4 encoding:
8
+ * method + era + compact(nonce) + compact(tip) + LE-u32(specVersion) +
9
+ * LE-u32(transactionVersion) + genesisHash + blockHash
10
+ *
11
+ * If the payload exceeds 256 bytes, it is blake2b-256 hashed before signing.
12
+ */
13
+ export const constructPolkadotSigningPayload = (payload) => {
14
+ const method = hexToU8a(payload.method);
15
+ const era = hexToU8a(payload.era);
16
+ const nonce = compactToU8a(parseInt(payload.nonce, 16));
17
+ const tip = compactToU8a(payload.tip ? BigInt(payload.tip) : 0n);
18
+ const specVersion = new Uint8Array(4);
19
+ new DataView(specVersion.buffer).setUint32(0, parseInt(payload.specVersion, 16), true);
20
+ const transactionVersion = new Uint8Array(4);
21
+ new DataView(transactionVersion.buffer).setUint32(0, parseInt(payload.transactionVersion, 16), true);
22
+ const genesisHash = hexToU8a(payload.genesisHash);
23
+ const blockHash = hexToU8a(payload.blockHash);
24
+ const raw = u8aConcat(method, era, nonce, tip, specVersion, transactionVersion, genesisHash, blockHash);
25
+ if (raw.length > polkadotSigningPayloadHashThreshold) {
26
+ return blake2AsU8a(raw, 256);
27
+ }
28
+ return raw;
29
+ };
30
+ //# sourceMappingURL=constructSigningPayload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constructSigningPayload.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/polkadot/dapp/constructSigningPayload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAInD,MAAM,mCAAmC,GAAG,GAAG,CAAA;AAE/C;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAC7C,OAAkC,EACtB,EAAE;IACd,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACvC,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACjC,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAA;IACvD,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAEhE,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;IACrC,IAAI,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,SAAS,CACxC,CAAC,EACD,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,EACjC,IAAI,CACL,CAAA;IAED,MAAM,kBAAkB,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;IAC5C,IAAI,QAAQ,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,SAAS,CAC/C,CAAC,EACD,QAAQ,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,EACxC,IAAI,CACL,CAAA;IAED,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IACjD,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAE7C,MAAM,GAAG,GAAG,SAAS,CACnB,MAAM,EACN,GAAG,EACH,KAAK,EACL,GAAG,EACH,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,SAAS,CACV,CAAA;IAED,IAAI,GAAG,CAAC,MAAM,GAAG,mCAAmC,EAAE,CAAC;QACrD,OAAO,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAC9B,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ /** Fetches the median of non-zero recent prioritization fees from the Solana RPC. */
2
+ export declare const getDynamicPriorityFeePrice: () => Promise<number>;
3
+ //# sourceMappingURL=getDynamicPriorityFeePrice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDynamicPriorityFeePrice.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/chains/solana/getDynamicPriorityFeePrice.ts"],"names":[],"mappings":"AAGA,qFAAqF;AACrF,eAAO,MAAM,0BAA0B,QAAa,OAAO,CAAC,MAAM,CAqBjE,CAAA"}
@@ -0,0 +1,20 @@
1
+ import { getSolanaClient } from './client.js';
2
+ import { solanaConfig } from './solanaConfig.js';
3
+ /** Fetches the median of non-zero recent prioritization fees from the Solana RPC. */
4
+ export const getDynamicPriorityFeePrice = async () => {
5
+ const client = getSolanaClient();
6
+ const recentFees = await client.getRecentPrioritizationFees();
7
+ const nonZeroFees = recentFees
8
+ .map(entry => entry.prioritizationFee)
9
+ .filter(fee => fee > 0)
10
+ .sort((a, b) => a - b);
11
+ if (nonZeroFees.length === 0) {
12
+ return solanaConfig.priorityFeePrice;
13
+ }
14
+ const mid = Math.floor(nonZeroFees.length / 2);
15
+ if (nonZeroFees.length % 2 === 0) {
16
+ return Math.round((nonZeroFees[mid - 1] + nonZeroFees[mid]) / 2);
17
+ }
18
+ return nonZeroFees[mid];
19
+ };
20
+ //# sourceMappingURL=getDynamicPriorityFeePrice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDynamicPriorityFeePrice.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/chains/solana/getDynamicPriorityFeePrice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,qFAAqF;AACrF,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,IAAqB,EAAE;IAClE,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;IAEhC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,2BAA2B,EAAE,CAAA;IAE7D,MAAM,WAAW,GAAG,UAAU;SACzB,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC;SACrC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;SACtB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IAE1B,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,YAAY,CAAC,gBAAgB,CAAA;IACxC,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAE9C,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IACpE,CAAC;IAED,OAAO,WAAW,CAAC,GAAG,CAAC,CAAA;AAC3B,CAAC,CAAA"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Submit a single signed transaction via JITO's sendTransaction endpoint.
3
+ * Provides free MEV protection (private mempool) without requiring a bundle or tip.
4
+ */
5
+ export declare function sendJitoTransaction(rawTransaction: Uint8Array): Promise<string>;
6
+ //# sourceMappingURL=jito.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jito.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/chains/solana/jito.ts"],"names":[],"mappings":"AA6BA;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,cAAc,EAAE,UAAU,GACzB,OAAO,CAAC,MAAM,CAAC,CAejB"}
@@ -0,0 +1,40 @@
1
+ import base58 from 'bs58';
2
+ const JITO_BLOCK_ENGINE_URL = 'https://mainnet.block-engine.jito.wtf';
3
+ const JITO_HTTP_TIMEOUT_MS = 8_000;
4
+ async function jitoFetch(url, body) {
5
+ const controller = new AbortController();
6
+ const timeout = setTimeout(() => controller.abort(), JITO_HTTP_TIMEOUT_MS);
7
+ try {
8
+ const response = await fetch(url, {
9
+ method: 'POST',
10
+ headers: { 'Content-Type': 'application/json' },
11
+ body: JSON.stringify(body),
12
+ signal: controller.signal,
13
+ });
14
+ if (!response.ok) {
15
+ throw new Error(`JITO request failed: ${response.status} ${response.statusText}`);
16
+ }
17
+ return response.json();
18
+ }
19
+ finally {
20
+ clearTimeout(timeout);
21
+ }
22
+ }
23
+ /**
24
+ * Submit a single signed transaction via JITO's sendTransaction endpoint.
25
+ * Provides free MEV protection (private mempool) without requiring a bundle or tip.
26
+ */
27
+ export async function sendJitoTransaction(rawTransaction) {
28
+ const encoded = base58.encode(rawTransaction);
29
+ const data = await jitoFetch(`${JITO_BLOCK_ENGINE_URL}/api/v1/transactions`, {
30
+ jsonrpc: '2.0',
31
+ id: 1,
32
+ method: 'sendTransaction',
33
+ params: [encoded, { encoding: 'base58' }],
34
+ });
35
+ if (data.error) {
36
+ throw new Error(`JITO sendTransaction failed: ${JSON.stringify(data.error)}`);
37
+ }
38
+ return data.result;
39
+ }
40
+ //# sourceMappingURL=jito.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jito.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/chains/solana/jito.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,MAAM,CAAA;AAEzB,MAAM,qBAAqB,GAAG,uCAAuC,CAAA;AACrE,MAAM,oBAAoB,GAAG,KAAK,CAAA;AAOlC,KAAK,UAAU,SAAS,CAAc,GAAW,EAAE,IAAa;IAC9D,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;IACxC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,oBAAoB,CAAC,CAAA;IAC1E,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1B,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAA;QACF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;QACnF,CAAC;QACD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAA;IACxB,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,OAAO,CAAC,CAAA;IACvB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,cAA0B;IAE1B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;IAE7C,MAAM,IAAI,GAAG,MAAM,SAAS,CAAS,GAAG,qBAAqB,sBAAsB,EAAE;QACnF,OAAO,EAAE,KAAK;QACd,EAAE,EAAE,CAAC;QACL,MAAM,EAAE,iBAAiB;QACzB,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;KAC1C,CAAC,CAAA;IACF,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,gCAAgC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAC7D,CAAA;IACH,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAA;AACpB,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Converts a user-friendly TON address (EQ.../UQ...) to raw format (workchain:hex).
3
+ * The toncenter v3 API requires raw addresses.
4
+ */
5
+ export declare const tonAddressToRaw: (userFriendlyAddress: string) => string;
6
+ //# sourceMappingURL=address.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/chains/ton/address.ts"],"names":[],"mappings":"AAQA;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,qBAAqB,MAAM,KAAG,MAM7D,CAAA"}
@@ -0,0 +1,17 @@
1
+ import { fromBase64 } from '@vultisig/lib-utils/fromBase64';
2
+ /** Converts base64url encoding to standard base64 so `Buffer.from` can decode it. */
3
+ const fromBase64Url = (value) => {
4
+ const standardBase64 = value.replace(/-/g, '+').replace(/_/g, '/');
5
+ return fromBase64(standardBase64);
6
+ };
7
+ /**
8
+ * Converts a user-friendly TON address (EQ.../UQ...) to raw format (workchain:hex).
9
+ * The toncenter v3 API requires raw addresses.
10
+ */
11
+ export const tonAddressToRaw = (userFriendlyAddress) => {
12
+ const decoded = fromBase64Url(userFriendlyAddress);
13
+ const workchain = decoded[1] >= 128 ? decoded[1] - 256 : decoded[1];
14
+ const hash = decoded.subarray(2, 34).toString('hex');
15
+ return `${workchain}:${hash}`;
16
+ };
17
+ //# sourceMappingURL=address.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/chains/ton/address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAE3D,qFAAqF;AACrF,MAAM,aAAa,GAAG,CAAC,KAAa,EAAU,EAAE;IAC9C,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAClE,OAAO,UAAU,CAAC,cAAc,CAAC,CAAA;AACnC,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,mBAA2B,EAAU,EAAE;IACrE,MAAM,OAAO,GAAG,aAAa,CAAC,mBAAmB,CAAC,CAAA;IAClD,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IACnE,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEpD,OAAO,GAAG,SAAS,IAAI,IAAI,EAAE,CAAA;AAC/B,CAAC,CAAA"}
@@ -1,6 +1,11 @@
1
- export declare const getJettonWalletAddress: ({ ownerAddress, jettonMasterAddress, }: {
1
+ type GetJettonWalletInput = {
2
2
  ownerAddress: string;
3
3
  jettonMasterAddress: string;
4
- }) => Promise<string>;
4
+ };
5
+ /** Resolves the user-friendly jetton wallet address for a given owner and jetton master. */
6
+ export declare const getJettonWalletAddress: (input: GetJettonWalletInput) => Promise<string>;
7
+ /** Fetches the balance of a specific jetton for a given owner address. */
8
+ export declare const getJettonBalance: (input: GetJettonWalletInput) => Promise<bigint>;
5
9
  export declare const getTonWalletState: (address: string) => Promise<string>;
10
+ export {};
6
11
  //# sourceMappingURL=api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/chains/ton/api.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,sBAAsB,GAAU,wCAG1C;IACD,YAAY,EAAE,MAAM,CAAA;IACpB,mBAAmB,EAAE,MAAM,CAAA;CAC5B,KAAG,OAAO,CAAC,MAAM,CAWjB,CAAA;AAOD,eAAO,MAAM,iBAAiB,GAAU,SAAS,MAAM,KAAG,OAAO,CAAC,MAAM,CAKvE,CAAA"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/chains/ton/api.ts"],"names":[],"mappings":"AAqBA,KAAK,oBAAoB,GAAG;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,mBAAmB,EAAE,MAAM,CAAA;CAC5B,CAAA;AAaD,4FAA4F;AAC5F,eAAO,MAAM,sBAAsB,GACjC,OAAO,oBAAoB,KAC1B,OAAO,CAAC,MAAM,CAYhB,CAAA;AAED,0EAA0E;AAC1E,eAAO,MAAM,gBAAgB,GAC3B,OAAO,oBAAoB,KAC1B,OAAO,CAAC,MAAM,CAOhB,CAAA;AAOD,eAAO,MAAM,iBAAiB,GAAU,SAAS,MAAM,KAAG,OAAO,CAAC,MAAM,CAKvE,CAAA"}
@@ -1,9 +1,16 @@
1
1
  import { rootApiUrl } from '@vultisig/core-config';
2
2
  import { queryUrl } from '@vultisig/lib-utils/query/queryUrl';
3
+ import { tonAddressToRaw } from './address.js';
3
4
  const tonApiUrl = `${rootApiUrl}/ton`;
4
- export const getJettonWalletAddress = async ({ ownerAddress, jettonMasterAddress, }) => {
5
- const url = `${tonApiUrl}/v3/jetton/wallets?owner_address=${ownerAddress}&jetton_master_address=${jettonMasterAddress}`;
6
- const response = await queryUrl(url);
5
+ /** Builds the toncenter v3 jetton wallets query URL, converting addresses to raw format. */
6
+ const getJettonWalletsUrl = ({ ownerAddress, jettonMasterAddress, }) => {
7
+ const rawOwner = tonAddressToRaw(ownerAddress);
8
+ const rawMaster = tonAddressToRaw(jettonMasterAddress);
9
+ return `${tonApiUrl}/v3/jetton/wallets?owner_address=${rawOwner}&jetton_address=${rawMaster}`;
10
+ };
11
+ /** Resolves the user-friendly jetton wallet address for a given owner and jetton master. */
12
+ export const getJettonWalletAddress = async (input) => {
13
+ const response = await queryUrl(getJettonWalletsUrl(input));
7
14
  const jettonAddress = response.jetton_wallets[0]?.address;
8
15
  if (!jettonAddress) {
9
16
  throw new Error('No jetton wallet found');
@@ -11,6 +18,12 @@ export const getJettonWalletAddress = async ({ ownerAddress, jettonMasterAddress
11
18
  const addressEntry = response.address_book[jettonAddress];
12
19
  return addressEntry?.user_friendly || jettonAddress;
13
20
  };
21
+ /** Fetches the balance of a specific jetton for a given owner address. */
22
+ export const getJettonBalance = async (input) => {
23
+ const response = await queryUrl(getJettonWalletsUrl(input));
24
+ const balance = response.jetton_wallets[0]?.balance;
25
+ return BigInt(balance ?? 0);
26
+ };
14
27
  export const getTonWalletState = async (address) => {
15
28
  const url = `${tonApiUrl}/v3/addressInformation?address=${address}&use_v2=false`;
16
29
  const response = await queryUrl(url);
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/chains/ton/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAE7D,MAAM,SAAS,GAAG,GAAG,UAAU,MAAM,CAAA;AAgBrC,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EAAE,EAC3C,YAAY,EACZ,mBAAmB,GAIpB,EAAmB,EAAE;IACpB,MAAM,GAAG,GAAG,GAAG,SAAS,oCAAoC,YAAY,0BAA0B,mBAAmB,EAAE,CAAA;IACvH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAuB,GAAG,CAAC,CAAA;IAE1D,MAAM,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,CAAA;IACzD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;IAC3C,CAAC;IAED,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,CAAA;IACzD,OAAO,YAAY,EAAE,aAAa,IAAI,aAAa,CAAA;AACrD,CAAC,CAAA;AAOD,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,OAAe,EAAmB,EAAE;IAC1E,MAAM,GAAG,GAAG,GAAG,SAAS,kCAAkC,OAAO,eAAe,CAAA;IAChF,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAA6B,GAAG,CAAC,CAAA;IAEhE,OAAO,QAAQ,CAAC,MAAM,CAAA;AACxB,CAAC,CAAA"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/chains/ton/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAE7D,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C,MAAM,SAAS,GAAG,GAAG,UAAU,MAAM,CAAA;AAqBrC,4FAA4F;AAC5F,MAAM,mBAAmB,GAAG,CAAC,EAC3B,YAAY,EACZ,mBAAmB,GACE,EAAU,EAAE;IACjC,MAAM,QAAQ,GAAG,eAAe,CAAC,YAAY,CAAC,CAAA;IAC9C,MAAM,SAAS,GAAG,eAAe,CAAC,mBAAmB,CAAC,CAAA;IAEtD,OAAO,GAAG,SAAS,oCAAoC,QAAQ,mBAAmB,SAAS,EAAE,CAAA;AAC/F,CAAC,CAAA;AAED,4FAA4F;AAC5F,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EACzC,KAA2B,EACV,EAAE;IACnB,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAC7B,mBAAmB,CAAC,KAAK,CAAC,CAC3B,CAAA;IAED,MAAM,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,CAAA;IACzD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;IAC3C,CAAC;IAED,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,CAAA;IACzD,OAAO,YAAY,EAAE,aAAa,IAAI,aAAa,CAAA;AACrD,CAAC,CAAA;AAED,0EAA0E;AAC1E,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,KAA2B,EACV,EAAE;IACnB,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAC7B,mBAAmB,CAAC,KAAK,CAAC,CAC3B,CAAA;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,CAAA;IACnD,OAAO,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,CAAA;AAC7B,CAAC,CAAA;AAOD,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,OAAe,EAAmB,EAAE;IAC1E,MAAM,GAAG,GAAG,GAAG,SAAS,kCAAkC,OAAO,eAAe,CAAA;IAChF,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAA6B,GAAG,CAAC,CAAA;IAEhE,OAAO,QAAQ,CAAC,MAAM,CAAA;AACxB,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { ChainPlainUtxo } from '../tx/ChainPlainUtxo.js';
2
+ export declare const getDashUtxos: (address: string) => Promise<ChainPlainUtxo[]>;
3
+ //# sourceMappingURL=getDashUtxos.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDashUtxos.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/utxo/client/getDashUtxos.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAiB1D,eAAO,MAAM,YAAY,GACvB,SAAS,MAAM,KACd,OAAO,CAAC,cAAc,EAAE,CAyB1B,CAAA"}
@@ -0,0 +1,28 @@
1
+ import { rootApiUrl } from '@vultisig/core-config';
2
+ import { queryUrl } from '@vultisig/lib-utils/query/queryUrl';
3
+ import { minUtxo } from '../minUtxo.js';
4
+ import { Chain } from '@vultisig/core-chain/Chain';
5
+ export const getDashUtxos = async (address) => {
6
+ const response = await queryUrl(`${rootApiUrl}/dash/`, {
7
+ body: {
8
+ jsonrpc: '1.0',
9
+ id: 'vultisig',
10
+ method: 'getaddressutxos',
11
+ params: [{ addresses: [address] }],
12
+ },
13
+ });
14
+ if (response.error) {
15
+ throw new Error(`Dash RPC error: ${response.error.message}`);
16
+ }
17
+ if (!response.result) {
18
+ return [];
19
+ }
20
+ return response.result
21
+ .filter(({ satoshis }) => satoshis > Number(minUtxo[Chain.Dash]))
22
+ .map(({ txid, satoshis, outputIndex }) => ({
23
+ hash: txid,
24
+ amount: BigInt(satoshis),
25
+ index: outputIndex,
26
+ }));
27
+ };
28
+ //# sourceMappingURL=getDashUtxos.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDashUtxos.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/utxo/client/getDashUtxos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAE7D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAkBlD,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,OAAe,EACY,EAAE;IAC7B,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAkB,GAAG,UAAU,QAAQ,EAAE;QACtE,IAAI,EAAE;YACJ,OAAO,EAAE,KAAK;YACd,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,iBAAiB;YACzB,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;SACnC;KACF,CAAC,CAAA;IAEF,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;IAC9D,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACrB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,OAAO,QAAQ,CAAC,MAAM;SACnB,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;SAChE,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;QACzC,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC;QACxB,KAAK,EAAE,WAAW;KACnB,CAAC,CAAC,CAAA;AACP,CAAC,CAAA"}
@@ -3,7 +3,16 @@ type Input = {
3
3
  amount: bigint;
4
4
  balance: bigint;
5
5
  chain: UtxoBasedChain;
6
+ /**
7
+ * When set (native fee coin), change after send is `balance - amount - fee`.
8
+ * Omit when the fee is paid from a different balance.
9
+ */
10
+ fee?: bigint;
11
+ /**
12
+ * Skip dust/change validation when the fee is not yet known (avoids false positives).
13
+ */
14
+ skipDustCheck?: boolean;
6
15
  };
7
- export declare const validateUtxoRequirements: ({ amount, balance, chain, }: Input) => string | undefined;
16
+ export declare const validateUtxoRequirements: ({ amount, balance, chain, fee, skipDustCheck, }: Input) => string | undefined;
8
17
  export {};
9
18
  //# sourceMappingURL=validateUtxoRequirements.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validateUtxoRequirements.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/utxo/send/validateUtxoRequirements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAO3D,KAAK,KAAK,GAAG;IACX,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,cAAc,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAI,6BAItC,KAAK,KAAG,MAAM,GAAG,SAoBnB,CAAA"}
1
+ {"version":3,"file":"validateUtxoRequirements.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/utxo/send/validateUtxoRequirements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAO3D,KAAK,KAAK,GAAG;IACX,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,cAAc,CAAA;IACrB;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAI,iDAMtC,KAAK,KAAG,MAAM,GAAG,SAyBnB,CAAA"}
@@ -2,13 +2,16 @@ import { chainFeeCoin } from '@vultisig/core-chain/coin/chainFeeCoin';
2
2
  import { formatAmount } from '@vultisig/lib-utils/formatAmount';
3
3
  import { fromChainAmount } from '../../../amount/fromChainAmount.js';
4
4
  import { minUtxo } from '../minUtxo.js';
5
- export const validateUtxoRequirements = ({ amount, balance, chain, }) => {
5
+ export const validateUtxoRequirements = ({ amount, balance, chain, fee, skipDustCheck, }) => {
6
6
  const { decimals, ticker } = chainFeeCoin[chain];
7
7
  if (amount < minUtxo[chain]) {
8
8
  const formattedAmount = formatAmount(fromChainAmount(minUtxo[chain], decimals), { ticker });
9
9
  return `Minimum send amount is ${formattedAmount}. ${chain} requires this to prevent spam.`;
10
10
  }
11
- const remainingBalance = balance - amount;
11
+ if (skipDustCheck) {
12
+ return;
13
+ }
14
+ const remainingBalance = fee != null ? balance - amount - fee : balance - amount;
12
15
  if (remainingBalance === 0n) {
13
16
  return;
14
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validateUtxoRequirements.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/utxo/send/validateUtxoRequirements.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAQpC,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,EACvC,MAAM,EACN,OAAO,EACP,KAAK,GACC,EAAsB,EAAE;IAC9B,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IAEhD,IAAI,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,eAAe,GAAG,YAAY,CAClC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,EACzC,EAAE,MAAM,EAAE,CACX,CAAA;QACD,OAAO,0BAA0B,eAAe,KAAK,KAAK,iCAAiC,CAAA;IAC7F,CAAC;IAED,MAAM,gBAAgB,GAAG,OAAO,GAAG,MAAM,CAAA;IAEzC,IAAI,gBAAgB,KAAK,EAAE,EAAE,CAAC;QAC5B,OAAM;IACR,CAAC;IAED,IAAI,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,OAAO,8EAA8E,CAAA;IACvF,CAAC;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"validateUtxoRequirements.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/utxo/send/validateUtxoRequirements.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAiBpC,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,EACvC,MAAM,EACN,OAAO,EACP,KAAK,EACL,GAAG,EACH,aAAa,GACP,EAAsB,EAAE;IAC9B,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IAEhD,IAAI,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,eAAe,GAAG,YAAY,CAClC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,EACzC,EAAE,MAAM,EAAE,CACX,CAAA;QACD,OAAO,0BAA0B,eAAe,KAAK,KAAK,iCAAiC,CAAA;IAC7F,CAAC;IAED,IAAI,aAAa,EAAE,CAAC;QAClB,OAAM;IACR,CAAC;IAED,MAAM,gBAAgB,GACpB,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,GAAG,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,MAAM,CAAA;IAEzD,IAAI,gBAAgB,KAAK,EAAE,EAAE,CAAC;QAC5B,OAAM;IACR,CAAC;IAED,IAAI,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,OAAO,8EAA8E,CAAA;IACvF,CAAC;AACH,CAAC,CAAA"}
@@ -0,0 +1,6 @@
1
+ export type ChainPlainUtxo = {
2
+ hash: string;
3
+ amount: bigint;
4
+ index: number;
5
+ };
6
+ //# sourceMappingURL=ChainPlainUtxo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChainPlainUtxo.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/utxo/tx/ChainPlainUtxo.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CACd,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ChainPlainUtxo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChainPlainUtxo.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/utxo/tx/ChainPlainUtxo.ts"],"names":[],"mappings":""}
@@ -54,7 +54,7 @@ export const getPsbtTransferInfo = (psbt, senderAddress) => {
54
54
  // Filter out OP_RETURN outputs and null addresses (failed parsing)
55
55
  const validOutputs = allOutputs.filter(o => !o.isOpReturn && o.addr !== null);
56
56
  // Filter out sender's change address to isolate payment recipients.
57
- // See https://github.com/vultisig/vultisig-windows/pull/2533 for context: that PR prevents change outputs from being treated as recipients.
57
+ // Do not treat change outputs as transfer recipients (context: vultisig/vultisig-windows#2533).
58
58
  // However, for self-sends (all outputs to sender address), we need to include
59
59
  // them as recipients since there are no "external" recipients in that case.
60
60
  const nonSenderOutputs = validOutputs.filter(o => o.addr !== senderAddress);
@@ -1 +1 @@
1
- {"version":3,"file":"getPsbtTransferInfo.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/utxo/tx/getPsbtTransferInfo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getPsbtTransferInfo.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/utxo/tx/getPsbtTransferInfo.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
- import { UtxoChain } from '@vultisig/core-chain/Chain';
2
- import { ChainAccount } from '@vultisig/core-chain/ChainAccount';
3
- export declare const getUtxos: (account: ChainAccount<UtxoChain>) => Promise<import("@vultisig/core-mpc/types/vultisig/keysign/v1/utxo_info_pb").UtxoInfo[]>;
1
+ import { ChainAccount } from '../../../ChainAccount.js';
2
+ import { UtxoChain } from '../../../Chain.js';
3
+ import type { ChainPlainUtxo } from './ChainPlainUtxo.js';
4
+ export type { ChainPlainUtxo } from './ChainPlainUtxo.js';
5
+ export declare const getUtxos: (account: ChainAccount<UtxoChain>) => Promise<ChainPlainUtxo[]>;
4
6
  //# sourceMappingURL=getUtxos.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getUtxos.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/utxo/tx/getUtxos.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAMhE,eAAO,MAAM,QAAQ,GAAU,SAAS,YAAY,CAAC,SAAS,CAAC,4FAc9D,CAAA"}
1
+ {"version":3,"file":"getUtxos.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/utxo/tx/getUtxos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAS,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAMjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,eAAO,MAAM,QAAQ,GACnB,SAAS,YAAY,CAAC,SAAS,CAAC,KAC/B,OAAO,CAAC,cAAc,EAAE,CAgB1B,CAAA"}
@@ -1,13 +1,16 @@
1
- import { create } from '@bufbuild/protobuf';
2
- import { getUtxoAddressInfo } from '@vultisig/core-chain/chains/utxo/client/getUtxoAddressInfo';
3
- import { UtxoInfoSchema } from '@vultisig/core-mpc/types/vultisig/keysign/v1/utxo_info_pb';
1
+ import { Chain } from '../../../Chain.js';
2
+ import { getDashUtxos } from '../client/getDashUtxos.js';
3
+ import { getUtxoAddressInfo } from '../client/getUtxoAddressInfo.js';
4
4
  import { minUtxo } from '../minUtxo.js';
5
5
  export const getUtxos = async (account) => {
6
+ if (account.chain === Chain.Dash) {
7
+ return getDashUtxos(account.address);
8
+ }
6
9
  const { data } = await getUtxoAddressInfo(account);
7
10
  const { utxo } = data[account.address];
8
11
  return utxo
9
12
  .filter(({ value }) => value > minUtxo[account.chain])
10
- .map(({ transaction_hash, value, index }) => create(UtxoInfoSchema, {
13
+ .map(({ transaction_hash, value, index }) => ({
11
14
  hash: transaction_hash,
12
15
  amount: BigInt(value),
13
16
  index,
@@ -1 +1 @@
1
- {"version":3,"file":"getUtxos.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/utxo/tx/getUtxos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAG3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,4DAA4D,CAAA;AAC/F,OAAO,EAAE,cAAc,EAAE,MAAM,2DAA2D,CAAA;AAE1F,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,OAAgC,EAAE,EAAE;IACjE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAElD,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAEtC,OAAO,IAAI;SACR,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACrD,GAAG,CAAC,CAAC,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAC1C,MAAM,CAAC,cAAc,EAAE;QACrB,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;QACrB,KAAK;KACN,CAAC,CACH,CAAA;AACL,CAAC,CAAA"}
1
+ {"version":3,"file":"getUtxos.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/utxo/tx/getUtxos.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAa,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAEjE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAMpC,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAC3B,OAAgC,EACL,EAAE;IAC7B,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;QACjC,OAAO,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACtC,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAElD,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAEtC,OAAO,IAAI;SACR,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACrD,GAAG,CAAC,CAAC,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5C,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;QACrB,KAAK;KACN,CAAC,CAAC,CAAA;AACP,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/coin/balance/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AA2BhD,eAAO,MAAM,cAAc,EAAE,mBACgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/coin/balance/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AA6BhD,eAAO,MAAM,cAAc,EAAE,mBACgB,CAAA"}
@@ -4,6 +4,7 @@ import { getCardanoCoinBalance } from './resolvers/cardano.js';
4
4
  import { getCosmosCoinBalance } from './resolvers/cosmos.js';
5
5
  import { getEvmCoinBalance } from './resolvers/evm.js';
6
6
  import { getPolkadotCoinBalance } from './resolvers/polkadot.js';
7
+ import { getQbtcCoinBalance } from './resolvers/qbtc.js';
7
8
  import { getRippleCoinBalance } from './resolvers/ripple.js';
8
9
  import { getSolanaCoinBalance } from './resolvers/solana.js';
9
10
  import { getSuiCoinBalance } from './resolvers/sui.js';
@@ -22,6 +23,7 @@ const resolvers = {
22
23
  solana: getSolanaCoinBalance,
23
24
  tron: getTronCoinBalance,
24
25
  cardano: getCardanoCoinBalance,
26
+ qbtc: getQbtcCoinBalance,
25
27
  };
26
28
  export const getCoinBalance = async (input) => resolvers[getChainKind(input.chain)](input);
27
29
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/coin/balance/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAGxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAErD,MAAM,SAAS,GAAgD;IAC7D,IAAI,EAAE,kBAAkB;IACxB,MAAM,EAAE,oBAAoB;IAC5B,GAAG,EAAE,iBAAiB;IACtB,GAAG,EAAE,iBAAiB;IACtB,GAAG,EAAE,iBAAiB;IACtB,MAAM,EAAE,oBAAoB;IAC5B,QAAQ,EAAE,sBAAsB;IAChC,SAAS,EAAE,uBAAuB;IAClC,MAAM,EAAE,oBAAoB;IAC5B,IAAI,EAAE,kBAAkB;IACxB,OAAO,EAAE,qBAAqB;CAC/B,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAwB,KAAK,EAAC,KAAK,EAAC,EAAE,CAC/D,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/coin/balance/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAGxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAErD,MAAM,SAAS,GAAgD;IAC7D,IAAI,EAAE,kBAAkB;IACxB,MAAM,EAAE,oBAAoB;IAC5B,GAAG,EAAE,iBAAiB;IACtB,GAAG,EAAE,iBAAiB;IACtB,GAAG,EAAE,iBAAiB;IACtB,MAAM,EAAE,oBAAoB;IAC5B,QAAQ,EAAE,sBAAsB;IAChC,SAAS,EAAE,uBAAuB;IAClC,MAAM,EAAE,oBAAoB;IAC5B,IAAI,EAAE,kBAAkB;IACxB,OAAO,EAAE,qBAAqB;IAC9B,IAAI,EAAE,kBAAkB;CACzB,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAwB,KAAK,EAAC,KAAK,EAAC,EAAE,CAC/D,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import { OtherChain } from '@vultisig/core-chain/Chain';
2
2
  import { CoinBalanceResolver } from '../resolver.js';
3
+ /** Fetches the balance for ADA (when `id` is absent) or a Cardano native token (when `id` is present). */
3
4
  export declare const getCardanoCoinBalance: CoinBalanceResolver<OtherChain.Cardano>;
4
5
  //# sourceMappingURL=cardano.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cardano.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/coin/balance/resolvers/cardano.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAIvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAMjD,eAAO,MAAM,qBAAqB,EAAE,mBAAmB,CACrD,UAAU,CAAC,OAAO,CAYnB,CAAA"}
1
+ {"version":3,"file":"cardano.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/coin/balance/resolvers/cardano.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAMvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAMjD,0GAA0G;AAC1G,eAAO,MAAM,qBAAqB,EAAE,mBAAmB,CACrD,UAAU,CAAC,OAAO,CAyBnB,CAAA"}
@@ -1,6 +1,18 @@
1
+ import { fromCardanoAssetId } from '@vultisig/core-chain/chains/cardano/asset/cardanoAssetId';
2
+ import { getCardanoAddressAssets } from '@vultisig/core-chain/chains/cardano/client/getCardanoAddressAssets';
1
3
  import { cardanoApiUrl } from '@vultisig/core-chain/chains/cardano/client/config';
2
4
  import { queryUrl } from '@vultisig/lib-utils/query/queryUrl';
5
+ /** Fetches the balance for ADA (when `id` is absent) or a Cardano native token (when `id` is present). */
3
6
  export const getCardanoCoinBalance = async (input) => {
7
+ if (input.id) {
8
+ const { policyId, assetName } = fromCardanoAssetId(input.id);
9
+ const normalizedPolicyId = policyId.toLowerCase();
10
+ const normalizedAssetName = assetName.toLowerCase();
11
+ const assets = await getCardanoAddressAssets(input.address);
12
+ const match = assets.find(a => a.policy_id.toLowerCase() === normalizedPolicyId &&
13
+ a.asset_name.toLowerCase() === normalizedAssetName);
14
+ return match ? BigInt(match.quantity) : 0n;
15
+ }
4
16
  const url = `${cardanoApiUrl}/address_info`;
5
17
  const [{ balance } = { balance: '0' }] = await queryUrl(url, {
6
18
  body: {
@@ -1 +1 @@
1
- {"version":3,"file":"cardano.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/coin/balance/resolvers/cardano.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,mDAAmD,CAAA;AACjF,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAQ7D,MAAM,CAAC,MAAM,qBAAqB,GAE9B,KAAK,EAAC,KAAK,EAAC,EAAE;IAChB,MAAM,GAAG,GAAG,GAAG,aAAa,eAAe,CAAA;IAE3C,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,GACpC,MAAM,QAAQ,CAA6B,GAAG,EAAE;QAC9C,IAAI,EAAE;YACJ,UAAU,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;SAC5B;KACF,CAAC,CAAA;IAEJ,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;AACxB,CAAC,CAAA"}
1
+ {"version":3,"file":"cardano.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/coin/balance/resolvers/cardano.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0DAA0D,CAAA;AAC7F,OAAO,EAAE,uBAAuB,EAAE,MAAM,oEAAoE,CAAA;AAC5G,OAAO,EAAE,aAAa,EAAE,MAAM,mDAAmD,CAAA;AACjF,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAQ7D,0GAA0G;AAC1G,MAAM,CAAC,MAAM,qBAAqB,GAE9B,KAAK,EAAC,KAAK,EAAC,EAAE;IAChB,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;QACb,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAC5D,MAAM,kBAAkB,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAA;QACjD,MAAM,mBAAmB,GAAG,SAAS,CAAC,WAAW,EAAE,CAAA;QACnD,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CACvB,CAAC,CAAC,EAAE,CACF,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,kBAAkB;YAChD,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,mBAAmB,CACrD,CAAA;QACD,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC5C,CAAC;IAED,MAAM,GAAG,GAAG,GAAG,aAAa,eAAe,CAAA;IAE3C,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,GACpC,MAAM,QAAQ,CAA6B,GAAG,EAAE;QAC9C,IAAI,EAAE;YACJ,UAAU,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;SAC5B;KACF,CAAC,CAAA;IAEJ,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;AACxB,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { Chain } from '@vultisig/core-chain/Chain';
2
+ import { CoinBalanceResolver } from '../resolver.js';
3
+ export declare const getQbtcCoinBalance: CoinBalanceResolver<typeof Chain.QBTC>;
4
+ //# sourceMappingURL=qbtc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qbtc.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/coin/balance/resolvers/qbtc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAMlD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAIjD,eAAO,MAAM,kBAAkB,EAAE,mBAAmB,CAClD,OAAO,KAAK,CAAC,IAAI,CASlB,CAAA"}
@@ -0,0 +1,13 @@
1
+ import { qbtcRestUrl } from '@vultisig/core-chain/chains/cosmos/qbtc/tendermintRpcUrl';
2
+ import { isFeeCoin } from '@vultisig/core-chain/coin/utils/isFeeCoin';
3
+ import { shouldBePresent } from '@vultisig/lib-utils/assert/shouldBePresent';
4
+ import { queryUrl } from '@vultisig/lib-utils/query/queryUrl';
5
+ const nativeQbtcDenom = 'qbtc';
6
+ export const getQbtcCoinBalance = async (input) => {
7
+ const denom = isFeeCoin(input) ? nativeQbtcDenom : shouldBePresent(input.id);
8
+ const url = `${qbtcRestUrl}/cosmos/bank/v1beta1/balances/${input.address}`;
9
+ const data = await queryUrl(url);
10
+ const entry = data.balances.find(b => b.denom === denom);
11
+ return entry ? BigInt(entry.amount) : 0n;
12
+ };
13
+ //# sourceMappingURL=qbtc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qbtc.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/coin/balance/resolvers/qbtc.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,0DAA0D,CAAA;AACtF,OAAO,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAA;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAA;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAI7D,MAAM,eAAe,GAAG,MAAM,CAAA;AAE9B,MAAM,CAAC,MAAM,kBAAkB,GAE3B,KAAK,EAAC,KAAK,EAAC,EAAE;IAChB,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC5E,MAAM,GAAG,GAAG,GAAG,WAAW,iCAAiC,KAAK,CAAC,OAAO,EAAE,CAAA;IAC1E,MAAM,IAAI,GAAG,MAAM,QAAQ,CAExB,GAAG,CAAC,CAAA;IACP,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAA;IACxD,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAC1C,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"sui.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/coin/balance/resolvers/sui.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjD,eAAO,MAAM,iBAAiB,EAAE,mBAQ/B,CAAA"}
1
+ {"version":3,"file":"sui.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/coin/balance/resolvers/sui.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjD,eAAO,MAAM,iBAAiB,EAAE,mBAS/B,CAAA"}
@@ -3,6 +3,7 @@ export const getSuiCoinBalance = async (input) => {
3
3
  const rpcClient = getSuiClient();
4
4
  const { totalBalance } = await rpcClient.getBalance({
5
5
  owner: input.address,
6
+ ...(input.id ? { coinType: input.id } : {}),
6
7
  });
7
8
  return BigInt(totalBalance);
8
9
  };
@@ -1 +1 @@
1
- {"version":3,"file":"sui.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/coin/balance/resolvers/sui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AAIrE,MAAM,CAAC,MAAM,iBAAiB,GAAwB,KAAK,EAAC,KAAK,EAAC,EAAE;IAClE,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;IAEhC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC;QAClD,KAAK,EAAE,KAAK,CAAC,OAAO;KACrB,CAAC,CAAA;IAEF,OAAO,MAAM,CAAC,YAAY,CAAC,CAAA;AAC7B,CAAC,CAAA"}
1
+ {"version":3,"file":"sui.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/coin/balance/resolvers/sui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AAIrE,MAAM,CAAC,MAAM,iBAAiB,GAAwB,KAAK,EAAC,KAAK,EAAC,EAAE;IAClE,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;IAEhC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC;QAClD,KAAK,EAAE,KAAK,CAAC,OAAO;QACpB,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5C,CAAC,CAAA;IAEF,OAAO,MAAM,CAAC,YAAY,CAAC,CAAA;AAC7B,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"ton.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/coin/balance/resolvers/ton.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjD,eAAO,MAAM,iBAAiB,EAAE,mBAI/B,CAAA"}
1
+ {"version":3,"file":"ton.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/coin/balance/resolvers/ton.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjD,eAAO,MAAM,iBAAiB,EAAE,mBAU/B,CAAA"}
@@ -1,7 +1,16 @@
1
1
  import { getTonAccountInfo } from '@vultisig/core-chain/chains/ton/account/getTonAccountInfo';
2
+ import { getJettonBalance } from '@vultisig/core-chain/chains/ton/api';
3
+ import { isFeeCoin } from '@vultisig/core-chain/coin/utils/isFeeCoin';
4
+ import { shouldBePresent } from '@vultisig/lib-utils/assert/shouldBePresent';
2
5
  import { bigIntMax } from '@vultisig/lib-utils/bigint/bigIntMax';
3
6
  export const getTonCoinBalance = async (input) => {
4
- const { balance } = await getTonAccountInfo(input.address);
5
- return bigIntMax(BigInt(balance), BigInt(0));
7
+ if (isFeeCoin(input)) {
8
+ const { balance } = await getTonAccountInfo(input.address);
9
+ return bigIntMax(BigInt(balance), BigInt(0));
10
+ }
11
+ return getJettonBalance({
12
+ ownerAddress: input.address,
13
+ jettonMasterAddress: shouldBePresent(input.id),
14
+ });
6
15
  };
7
16
  //# sourceMappingURL=ton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ton.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/coin/balance/resolvers/ton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2DAA2D,CAAA;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAA;AAIhE,MAAM,CAAC,MAAM,iBAAiB,GAAwB,KAAK,EAAC,KAAK,EAAC,EAAE;IAClE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAE1D,OAAO,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AAC9C,CAAC,CAAA"}
1
+ {"version":3,"file":"ton.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/coin/balance/resolvers/ton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2DAA2D,CAAA;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAA;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAA;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAA;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAA;AAIhE,MAAM,CAAC,MAAM,iBAAiB,GAAwB,KAAK,EAAC,KAAK,EAAC,EAAE;IAClE,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC1D,OAAO,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9C,CAAC;IAED,OAAO,gBAAgB,CAAC;QACtB,YAAY,EAAE,KAAK,CAAC,OAAO;QAC3B,mBAAmB,EAAE,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;KAC/C,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"chainFeeCoin.d.ts","sourceRoot":"","sources":["../../../../../packages/core/chain/coin/chainFeeCoin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAmB,MAAM,4BAA4B,CAAA;AACnE,OAAO,EAAE,SAAS,EAAqB,MAAM,gCAAgC,CAAA;AA2M7E,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,CAMjD,CAAA"}
1
+ {"version":3,"file":"chainFeeCoin.d.ts","sourceRoot":"","sources":["../../../../../packages/core/chain/coin/chainFeeCoin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAmB,MAAM,4BAA4B,CAAA;AACnE,OAAO,EAAE,SAAS,EAAqB,MAAM,gCAAgC,CAAA;AAiN7E,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,CAMjD,CAAA"}