@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.
- package/CHANGELOG.md +26 -0
- package/dist/Chain.d.ts +5 -1
- package/dist/Chain.d.ts.map +1 -1
- package/dist/Chain.js +2 -0
- package/dist/Chain.js.map +1 -1
- package/dist/ChainKind.d.ts +1 -0
- package/dist/ChainKind.d.ts.map +1 -1
- package/dist/ChainKind.js +1 -0
- package/dist/ChainKind.js.map +1 -1
- package/dist/chains/cardano/asset/cardanoAssetId.d.ts +14 -0
- package/dist/chains/cardano/asset/cardanoAssetId.d.ts.map +1 -0
- package/dist/chains/cardano/asset/cardanoAssetId.js +19 -0
- package/dist/chains/cardano/asset/cardanoAssetId.js.map +1 -0
- package/dist/chains/cardano/client/getCardanoAddressAssets.d.ts +10 -0
- package/dist/chains/cardano/client/getCardanoAddressAssets.d.ts.map +1 -0
- package/dist/chains/cardano/client/getCardanoAddressAssets.js +19 -0
- package/dist/chains/cardano/client/getCardanoAddressAssets.js.map +1 -0
- package/dist/chains/cardano/client/getCardanoAssetInfo.d.ts +23 -0
- package/dist/chains/cardano/client/getCardanoAssetInfo.d.ts.map +1 -0
- package/dist/chains/cardano/client/getCardanoAssetInfo.js +16 -0
- package/dist/chains/cardano/client/getCardanoAssetInfo.js.map +1 -0
- package/dist/chains/cardano/utxo/getCardanoExtendedUtxos.d.ts +20 -0
- package/dist/chains/cardano/utxo/getCardanoExtendedUtxos.d.ts.map +1 -0
- package/dist/chains/cardano/utxo/getCardanoExtendedUtxos.js +22 -0
- package/dist/chains/cardano/utxo/getCardanoExtendedUtxos.js.map +1 -0
- package/dist/chains/cardano/utxo/getCardanoUtxos.d.ts +2 -1
- package/dist/chains/cardano/utxo/getCardanoUtxos.d.ts.map +1 -1
- package/dist/chains/cardano/utxo/getCardanoUtxos.js +1 -3
- package/dist/chains/cardano/utxo/getCardanoUtxos.js.map +1 -1
- package/dist/chains/cosmos/computeCosmosTxReceiptFeeAmount.d.ts +14 -0
- package/dist/chains/cosmos/computeCosmosTxReceiptFeeAmount.d.ts.map +1 -0
- package/dist/chains/cosmos/computeCosmosTxReceiptFeeAmount.js +28 -0
- package/dist/chains/cosmos/computeCosmosTxReceiptFeeAmount.js.map +1 -0
- package/dist/chains/cosmos/qbtc/getQbtcAccountInfo.d.ts +9 -0
- package/dist/chains/cosmos/qbtc/getQbtcAccountInfo.d.ts.map +1 -0
- package/dist/chains/cosmos/qbtc/getQbtcAccountInfo.js +21 -0
- package/dist/chains/cosmos/qbtc/getQbtcAccountInfo.js.map +1 -0
- package/dist/chains/cosmos/qbtc/protoEncoding.d.ts +13 -0
- package/dist/chains/cosmos/qbtc/protoEncoding.d.ts.map +1 -0
- package/dist/chains/cosmos/qbtc/protoEncoding.js +52 -0
- package/dist/chains/cosmos/qbtc/protoEncoding.js.map +1 -0
- package/dist/chains/cosmos/qbtc/tendermintRpcUrl.d.ts +4 -0
- package/dist/chains/cosmos/qbtc/tendermintRpcUrl.d.ts.map +1 -0
- package/dist/chains/cosmos/qbtc/tendermintRpcUrl.js +4 -0
- package/dist/chains/cosmos/qbtc/tendermintRpcUrl.js.map +1 -0
- package/dist/chains/cosmos/sumFeeAmountForCosmosChainFeeDenom.d.ts +15 -0
- package/dist/chains/cosmos/sumFeeAmountForCosmosChainFeeDenom.d.ts.map +1 -0
- package/dist/chains/cosmos/sumFeeAmountForCosmosChainFeeDenom.js +22 -0
- package/dist/chains/cosmos/sumFeeAmountForCosmosChainFeeDenom.js.map +1 -0
- package/dist/chains/cosmos/thor/lp/affiliate.d.ts +16 -0
- package/dist/chains/cosmos/thor/lp/affiliate.d.ts.map +1 -0
- package/dist/chains/cosmos/thor/lp/affiliate.js +16 -0
- package/dist/chains/cosmos/thor/lp/affiliate.js.map +1 -0
- package/dist/chains/cosmos/thor/lp/index.d.ts +22 -0
- package/dist/chains/cosmos/thor/lp/index.d.ts.map +1 -0
- package/dist/chains/cosmos/thor/lp/index.js +18 -0
- package/dist/chains/cosmos/thor/lp/index.js.map +1 -0
- package/dist/chains/cosmos/thor/lp/memo.d.ts +41 -0
- package/dist/chains/cosmos/thor/lp/memo.d.ts.map +1 -0
- package/dist/chains/cosmos/thor/lp/memo.js +38 -0
- package/dist/chains/cosmos/thor/lp/memo.js.map +1 -0
- package/dist/chains/cosmos/thor/lp/payload.d.ts +46 -0
- package/dist/chains/cosmos/thor/lp/payload.d.ts.map +1 -0
- package/dist/chains/cosmos/thor/lp/payload.js +37 -0
- package/dist/chains/cosmos/thor/lp/payload.js.map +1 -0
- package/dist/chains/cosmos/thor/lp/pools.d.ts +46 -0
- package/dist/chains/cosmos/thor/lp/pools.d.ts.map +1 -0
- package/dist/chains/cosmos/thor/lp/pools.js +85 -0
- package/dist/chains/cosmos/thor/lp/pools.js.map +1 -0
- package/dist/chains/cosmos/thor/lp/position.d.ts +30 -0
- package/dist/chains/cosmos/thor/lp/position.d.ts.map +1 -0
- package/dist/chains/cosmos/thor/lp/position.js +58 -0
- package/dist/chains/cosmos/thor/lp/position.js.map +1 -0
- package/dist/chains/cosmos/thor/lp/validation.d.ts +13 -0
- package/dist/chains/cosmos/thor/lp/validation.d.ts.map +1 -0
- package/dist/chains/cosmos/thor/lp/validation.js +35 -0
- package/dist/chains/cosmos/thor/lp/validation.js.map +1 -0
- package/dist/chains/polkadot/dapp/PolkadotSignerPayload.d.ts +16 -0
- package/dist/chains/polkadot/dapp/PolkadotSignerPayload.d.ts.map +1 -0
- package/dist/chains/polkadot/dapp/PolkadotSignerPayload.js +2 -0
- package/dist/chains/polkadot/dapp/PolkadotSignerPayload.js.map +1 -0
- package/dist/chains/polkadot/dapp/constructSigningPayload.d.ts +12 -0
- package/dist/chains/polkadot/dapp/constructSigningPayload.d.ts.map +1 -0
- package/dist/chains/polkadot/dapp/constructSigningPayload.js +30 -0
- package/dist/chains/polkadot/dapp/constructSigningPayload.js.map +1 -0
- package/dist/chains/solana/getDynamicPriorityFeePrice.d.ts +3 -0
- package/dist/chains/solana/getDynamicPriorityFeePrice.d.ts.map +1 -0
- package/dist/chains/solana/getDynamicPriorityFeePrice.js +20 -0
- package/dist/chains/solana/getDynamicPriorityFeePrice.js.map +1 -0
- package/dist/chains/solana/jito.d.ts +6 -0
- package/dist/chains/solana/jito.d.ts.map +1 -0
- package/dist/chains/solana/jito.js +40 -0
- package/dist/chains/solana/jito.js.map +1 -0
- package/dist/chains/ton/address.d.ts +6 -0
- package/dist/chains/ton/address.d.ts.map +1 -0
- package/dist/chains/ton/address.js +17 -0
- package/dist/chains/ton/address.js.map +1 -0
- package/dist/chains/ton/api.d.ts +7 -2
- package/dist/chains/ton/api.d.ts.map +1 -1
- package/dist/chains/ton/api.js +16 -3
- package/dist/chains/ton/api.js.map +1 -1
- package/dist/chains/utxo/client/getDashUtxos.d.ts +3 -0
- package/dist/chains/utxo/client/getDashUtxos.d.ts.map +1 -0
- package/dist/chains/utxo/client/getDashUtxos.js +28 -0
- package/dist/chains/utxo/client/getDashUtxos.js.map +1 -0
- package/dist/chains/utxo/send/validateUtxoRequirements.d.ts +10 -1
- package/dist/chains/utxo/send/validateUtxoRequirements.d.ts.map +1 -1
- package/dist/chains/utxo/send/validateUtxoRequirements.js +5 -2
- package/dist/chains/utxo/send/validateUtxoRequirements.js.map +1 -1
- package/dist/chains/utxo/tx/ChainPlainUtxo.d.ts +6 -0
- package/dist/chains/utxo/tx/ChainPlainUtxo.d.ts.map +1 -0
- package/dist/chains/utxo/tx/ChainPlainUtxo.js +2 -0
- package/dist/chains/utxo/tx/ChainPlainUtxo.js.map +1 -0
- package/dist/chains/utxo/tx/getPsbtTransferInfo.js +1 -1
- package/dist/chains/utxo/tx/getPsbtTransferInfo.js.map +1 -1
- package/dist/chains/utxo/tx/getUtxos.d.ts +5 -3
- package/dist/chains/utxo/tx/getUtxos.d.ts.map +1 -1
- package/dist/chains/utxo/tx/getUtxos.js +7 -4
- package/dist/chains/utxo/tx/getUtxos.js.map +1 -1
- package/dist/coin/balance/index.d.ts.map +1 -1
- package/dist/coin/balance/index.js +2 -0
- package/dist/coin/balance/index.js.map +1 -1
- package/dist/coin/balance/resolvers/cardano.d.ts +1 -0
- package/dist/coin/balance/resolvers/cardano.d.ts.map +1 -1
- package/dist/coin/balance/resolvers/cardano.js +12 -0
- package/dist/coin/balance/resolvers/cardano.js.map +1 -1
- package/dist/coin/balance/resolvers/qbtc.d.ts +4 -0
- package/dist/coin/balance/resolvers/qbtc.d.ts.map +1 -0
- package/dist/coin/balance/resolvers/qbtc.js +13 -0
- package/dist/coin/balance/resolvers/qbtc.js.map +1 -0
- package/dist/coin/balance/resolvers/sui.d.ts.map +1 -1
- package/dist/coin/balance/resolvers/sui.js +1 -0
- package/dist/coin/balance/resolvers/sui.js.map +1 -1
- package/dist/coin/balance/resolvers/ton.d.ts.map +1 -1
- package/dist/coin/balance/resolvers/ton.js +11 -2
- package/dist/coin/balance/resolvers/ton.js.map +1 -1
- package/dist/coin/chainFeeCoin.d.ts.map +1 -1
- package/dist/coin/chainFeeCoin.js +6 -0
- package/dist/coin/chainFeeCoin.js.map +1 -1
- package/dist/coin/coinType.d.ts.map +1 -1
- package/dist/coin/coinType.js +1 -0
- package/dist/coin/coinType.js.map +1 -1
- package/dist/coin/find/CoinFinderChainKind.d.ts +1 -1
- package/dist/coin/find/CoinFinderChainKind.d.ts.map +1 -1
- package/dist/coin/find/CoinFinderChainKind.js +1 -1
- package/dist/coin/find/CoinFinderChainKind.js.map +1 -1
- package/dist/coin/find/index.d.ts.map +1 -1
- package/dist/coin/find/index.js +2 -0
- package/dist/coin/find/index.js.map +1 -1
- package/dist/coin/find/resolvers/cardano.d.ts +5 -0
- package/dist/coin/find/resolvers/cardano.d.ts.map +1 -0
- package/dist/coin/find/resolvers/cardano.js +17 -0
- package/dist/coin/find/resolvers/cardano.js.map +1 -0
- package/dist/coin/knownTokens/index.d.ts.map +1 -1
- package/dist/coin/knownTokens/index.js +74 -0
- package/dist/coin/knownTokens/index.js.map +1 -1
- package/dist/coin/token/metadata/chains.d.ts +1 -1
- package/dist/coin/token/metadata/chains.d.ts.map +1 -1
- package/dist/coin/token/metadata/chains.js +1 -0
- package/dist/coin/token/metadata/chains.js.map +1 -1
- package/dist/coin/token/metadata/index.d.ts.map +1 -1
- package/dist/coin/token/metadata/index.js +2 -0
- package/dist/coin/token/metadata/index.js.map +1 -1
- package/dist/coin/token/metadata/resolvers/cardano.d.ts +8 -0
- package/dist/coin/token/metadata/resolvers/cardano.d.ts.map +1 -0
- package/dist/coin/token/metadata/resolvers/cardano.js +20 -0
- package/dist/coin/token/metadata/resolvers/cardano.js.map +1 -0
- package/dist/publicKey/PublicKeys.d.ts +2 -2
- package/dist/publicKey/PublicKeys.d.ts.map +1 -1
- package/dist/publicKey/address/deriveQbtcAddress.d.ts +3 -0
- package/dist/publicKey/address/deriveQbtcAddress.d.ts.map +1 -0
- package/dist/publicKey/address/deriveQbtcAddress.js +11 -0
- package/dist/publicKey/address/deriveQbtcAddress.js.map +1 -0
- package/dist/publicKey/address/getChainAddress.d.ts +15 -0
- package/dist/publicKey/address/getChainAddress.d.ts.map +1 -0
- package/dist/publicKey/address/getChainAddress.js +20 -0
- package/dist/publicKey/address/getChainAddress.js.map +1 -0
- package/dist/publicKey/getPublicKey.d.ts.map +1 -1
- package/dist/publicKey/getPublicKey.js +6 -0
- package/dist/publicKey/getPublicKey.js.map +1 -1
- package/dist/publicKey/tw/getTwPublicKeyType.d.ts.map +1 -1
- package/dist/publicKey/tw/getTwPublicKeyType.js +3 -0
- package/dist/publicKey/tw/getTwPublicKeyType.js.map +1 -1
- package/dist/signing/SignatureAlgorithm.d.ts +3 -1
- package/dist/signing/SignatureAlgorithm.d.ts.map +1 -1
- package/dist/signing/SignatureAlgorithm.js +3 -0
- package/dist/signing/SignatureAlgorithm.js.map +1 -1
- package/dist/signing/SignatureFormat.d.ts.map +1 -1
- package/dist/signing/SignatureFormat.js +1 -0
- package/dist/signing/SignatureFormat.js.map +1 -1
- package/dist/swap/general/GeneralSwapQuote.d.ts +1 -0
- package/dist/swap/general/GeneralSwapQuote.d.ts.map +1 -1
- package/dist/swap/native/NativeSwapChain.d.ts +1 -2
- package/dist/swap/native/NativeSwapChain.d.ts.map +1 -1
- package/dist/swap/native/NativeSwapChain.js.map +1 -1
- package/dist/swap/native/utils/getNativeSwapDecimals.d.ts +8 -0
- package/dist/swap/native/utils/getNativeSwapDecimals.d.ts.map +1 -1
- package/dist/swap/native/utils/getNativeSwapDecimals.js +19 -4
- package/dist/swap/native/utils/getNativeSwapDecimals.js.map +1 -1
- package/dist/tw/signingOutput.d.ts +1 -0
- package/dist/tw/signingOutput.d.ts.map +1 -1
- package/dist/tw/signingOutput.js +1 -0
- package/dist/tw/signingOutput.js.map +1 -1
- package/dist/tx/broadcast/index.d.ts.map +1 -1
- package/dist/tx/broadcast/index.js +2 -0
- package/dist/tx/broadcast/index.js.map +1 -1
- package/dist/tx/broadcast/resolvers/qbtc.d.ts +4 -0
- package/dist/tx/broadcast/resolvers/qbtc.d.ts.map +1 -0
- package/dist/tx/broadcast/resolvers/qbtc.js +31 -0
- package/dist/tx/broadcast/resolvers/qbtc.js.map +1 -0
- package/dist/tx/broadcast/resolvers/solana.d.ts.map +1 -1
- package/dist/tx/broadcast/resolvers/solana.js +12 -1
- package/dist/tx/broadcast/resolvers/solana.js.map +1 -1
- package/dist/tx/hash/index.d.ts.map +1 -1
- package/dist/tx/hash/index.js +1 -0
- package/dist/tx/hash/index.js.map +1 -1
- package/dist/tx/hash/resolvers/cardano.d.ts.map +1 -1
- package/dist/tx/hash/resolvers/cardano.js +9 -5
- package/dist/tx/hash/resolvers/cardano.js.map +1 -1
- package/dist/tx/status/index.d.ts.map +1 -1
- package/dist/tx/status/index.js +2 -0
- package/dist/tx/status/index.js.map +1 -1
- package/dist/tx/status/resolvers/cosmos.d.ts.map +1 -1
- package/dist/tx/status/resolvers/cosmos.js +21 -8
- package/dist/tx/status/resolvers/cosmos.js.map +1 -1
- package/dist/tx/status/resolvers/qbtc.d.ts +4 -0
- package/dist/tx/status/resolvers/qbtc.d.ts.map +1 -0
- package/dist/tx/status/resolvers/qbtc.js +38 -0
- package/dist/tx/status/resolvers/qbtc.js.map +1 -0
- package/dist/tx/status/resolvers/ton.d.ts.map +1 -1
- package/dist/tx/status/resolvers/ton.js +4 -4
- package/dist/tx/status/resolvers/ton.js.map +1 -1
- package/dist/utils/getBlockExplorerUrl/index.d.ts.map +1 -1
- package/dist/utils/getBlockExplorerUrl/index.js +3 -0
- package/dist/utils/getBlockExplorerUrl/index.js.map +1 -1
- package/dist/utils/isValidAddress.d.ts.map +1 -1
- package/dist/utils/isValidAddress.js +10 -0
- package/dist/utils/isValidAddress.js.map +1 -1
- package/package.json +1439 -8
- package/dist/chains/evm/tx/incrementKeysignPayloadNonce.d.ts +0 -3
- package/dist/chains/evm/tx/incrementKeysignPayloadNonce.d.ts.map +0 -1
- package/dist/chains/evm/tx/incrementKeysignPayloadNonce.js +0 -17
- package/dist/chains/evm/tx/incrementKeysignPayloadNonce.js.map +0 -1
- package/dist/security/blockaid/tx/simulation/input/index.d.ts +0 -4
- package/dist/security/blockaid/tx/simulation/input/index.d.ts.map +0 -1
- package/dist/security/blockaid/tx/simulation/input/index.js +0 -26
- package/dist/security/blockaid/tx/simulation/input/index.js.map +0 -1
- package/dist/security/blockaid/tx/simulation/input/resolver.d.ts +0 -18
- package/dist/security/blockaid/tx/simulation/input/resolver.d.ts.map +0 -1
- package/dist/security/blockaid/tx/simulation/input/resolver.js +0 -2
- package/dist/security/blockaid/tx/simulation/input/resolver.js.map +0 -1
- package/dist/security/blockaid/tx/simulation/input/resolvers/evm.d.ts +0 -4
- package/dist/security/blockaid/tx/simulation/input/resolvers/evm.d.ts.map +0 -1
- package/dist/security/blockaid/tx/simulation/input/resolvers/evm.js +0 -68
- package/dist/security/blockaid/tx/simulation/input/resolvers/evm.js.map +0 -1
- package/dist/security/blockaid/tx/simulation/input/resolvers/solana.d.ts +0 -4
- package/dist/security/blockaid/tx/simulation/input/resolvers/solana.d.ts.map +0 -1
- package/dist/security/blockaid/tx/simulation/input/resolvers/solana.js +0 -31
- package/dist/security/blockaid/tx/simulation/input/resolvers/solana.js.map +0 -1
- package/dist/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.d.ts +0 -9
- package/dist/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.d.ts.map +0 -1
- package/dist/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.js +0 -50
- package/dist/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.js.map +0 -1
- package/dist/security/blockaid/tx/validation/input/index.d.ts +0 -4
- package/dist/security/blockaid/tx/validation/input/index.d.ts.map +0 -1
- package/dist/security/blockaid/tx/validation/input/index.js +0 -30
- package/dist/security/blockaid/tx/validation/input/index.js.map +0 -1
- package/dist/security/blockaid/tx/validation/input/resolver.d.ts +0 -16
- package/dist/security/blockaid/tx/validation/input/resolver.d.ts.map +0 -1
- package/dist/security/blockaid/tx/validation/input/resolver.js +0 -2
- package/dist/security/blockaid/tx/validation/input/resolver.js.map +0 -1
- package/dist/security/blockaid/tx/validation/input/resolvers/evm.d.ts +0 -4
- package/dist/security/blockaid/tx/validation/input/resolvers/evm.d.ts.map +0 -1
- package/dist/security/blockaid/tx/validation/input/resolvers/evm.js +0 -58
- package/dist/security/blockaid/tx/validation/input/resolvers/evm.js.map +0 -1
- package/dist/security/blockaid/tx/validation/input/resolvers/solana.d.ts +0 -4
- package/dist/security/blockaid/tx/validation/input/resolvers/solana.d.ts.map +0 -1
- package/dist/security/blockaid/tx/validation/input/resolvers/solana.js +0 -20
- package/dist/security/blockaid/tx/validation/input/resolvers/solana.js.map +0 -1
- package/dist/security/blockaid/tx/validation/input/resolvers/sui.d.ts +0 -4
- package/dist/security/blockaid/tx/validation/input/resolvers/sui.d.ts.map +0 -1
- package/dist/security/blockaid/tx/validation/input/resolvers/sui.js +0 -20
- package/dist/security/blockaid/tx/validation/input/resolvers/sui.js.map +0 -1
- package/dist/security/blockaid/tx/validation/input/resolvers/utxo.d.ts +0 -4
- package/dist/security/blockaid/tx/validation/input/resolvers/utxo.d.ts.map +0 -1
- package/dist/security/blockaid/tx/validation/input/resolvers/utxo.js +0 -19
- package/dist/security/blockaid/tx/validation/input/resolvers/utxo.js.map +0 -1
- package/dist/swap/native/utils/nativeSwapQuoteToSwapPayload.d.ts +0 -16
- package/dist/swap/native/utils/nativeSwapQuoteToSwapPayload.d.ts.map +0 -1
- package/dist/swap/native/utils/nativeSwapQuoteToSwapPayload.js +0 -31
- package/dist/swap/native/utils/nativeSwapQuoteToSwapPayload.js.map +0 -1
- package/dist/swap/utils/getSwapTrackingUrl.d.ts +0 -10
- package/dist/swap/utils/getSwapTrackingUrl.d.ts.map +0 -1
- package/dist/swap/utils/getSwapTrackingUrl.js +0 -29
- package/dist/swap/utils/getSwapTrackingUrl.js.map +0 -1
- package/dist/tx/compile/compileTx.d.ts +0 -14
- package/dist/tx/compile/compileTx.d.ts.map +0 -1
- package/dist/tx/compile/compileTx.js +0 -66
- package/dist/tx/compile/compileTx.js.map +0 -1
- package/dist/tx/preSigningHashes/index.d.ts +0 -10
- package/dist/tx/preSigningHashes/index.d.ts.map +0 -1
- package/dist/tx/preSigningHashes/index.js +0 -34
- package/dist/tx/preSigningHashes/index.js.map +0 -1
- package/dist/tx/signature/generateSignature.d.ts +0 -11
- package/dist/tx/signature/generateSignature.d.ts.map +0 -1
- package/dist/tx/signature/generateSignature.js +0 -20
- 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 @@
|
|
|
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 @@
|
|
|
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"}
|
package/dist/chains/ton/api.d.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
type GetJettonWalletInput = {
|
|
2
2
|
ownerAddress: string;
|
|
3
3
|
jettonMasterAddress: string;
|
|
4
|
-
}
|
|
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":"
|
|
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"}
|
package/dist/chains/ton/api.js
CHANGED
|
@@ -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
|
-
|
|
5
|
-
|
|
6
|
-
const
|
|
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;
|
|
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 @@
|
|
|
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;
|
|
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
|
-
|
|
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;
|
|
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 @@
|
|
|
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 @@
|
|
|
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
|
-
//
|
|
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":"AAAA,OAAO,EACL,OAAO,EACP,QAAQ,EACR,OAAO,EAEP,MAAM,IAAI,OAAO,GAClB,MAAM,eAAe,CAAA;AAEtB,MAAM,UAAU,GAAG,CAAC,MAAc,EAAW,EAAE;IAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IACxC,OAAO,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,SAAS,CAAA;AAC1C,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,eAAe,GAAG,CAAC,MAAc,EAAiB,EAAE;IACxD,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IACxC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,SAAS;QAAE,OAAO,IAAI,CAAA;IAC3D,MAAM,UAAU,GAAG,MAAM;SACtB,KAAK,CAAC,CAAC,CAAC;SACR,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;IAC7D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAExC,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAClD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAU,EAAE,aAAqB,EAAE,EAAE;IACvE,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAA;IAEhC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACxC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QAE7B,uDAAuD;QACvD,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YACtC,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;YAC3D,OAAO;gBACL,KAAK;gBACL,IAAI,EAAE,IAAI;gBACV,UAAU,EAAE,IAAI;gBAChB,YAAY;aACb,CAAA;QACH,CAAC;QAED,yBAAyB;QACzB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;YACxD,OAAO;gBACL,KAAK;gBACL,IAAI;gBACJ,UAAU,EAAE,KAAK;gBACjB,YAAY,EAAE,IAAI;aACnB,CAAA;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAA;YACrD,OAAO;gBACL,KAAK;gBACL,IAAI,EAAE,IAAI;gBACV,UAAU,EAAE,KAAK;gBACjB,YAAY,EAAE,IAAI;aACnB,CAAA;QACH,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,mEAAmE;IACnE,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;IAE7E,oEAAoE;IACpE,
|
|
1
|
+
{"version":3,"file":"getPsbtTransferInfo.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/utxo/tx/getPsbtTransferInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,QAAQ,EACR,OAAO,EAEP,MAAM,IAAI,OAAO,GAClB,MAAM,eAAe,CAAA;AAEtB,MAAM,UAAU,GAAG,CAAC,MAAc,EAAW,EAAE;IAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IACxC,OAAO,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,SAAS,CAAA;AAC1C,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,eAAe,GAAG,CAAC,MAAc,EAAiB,EAAE;IACxD,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IACxC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,SAAS;QAAE,OAAO,IAAI,CAAA;IAC3D,MAAM,UAAU,GAAG,MAAM;SACtB,KAAK,CAAC,CAAC,CAAC;SACR,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;IAC7D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAExC,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAClD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAU,EAAE,aAAqB,EAAE,EAAE;IACvE,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAA;IAEhC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACxC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QAE7B,uDAAuD;QACvD,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YACtC,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;YAC3D,OAAO;gBACL,KAAK;gBACL,IAAI,EAAE,IAAI;gBACV,UAAU,EAAE,IAAI;gBAChB,YAAY;aACb,CAAA;QACH,CAAC;QAED,yBAAyB;QACzB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;YACxD,OAAO;gBACL,KAAK;gBACL,IAAI;gBACJ,UAAU,EAAE,KAAK;gBACjB,YAAY,EAAE,IAAI;aACnB,CAAA;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAA;YACrD,OAAO;gBACL,KAAK;gBACL,IAAI,EAAE,IAAI;gBACV,UAAU,EAAE,KAAK;gBACjB,YAAY,EAAE,IAAI;aACnB,CAAA;QACH,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,mEAAmE;IACnE,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;IAE7E,oEAAoE;IACpE,gGAAgG;IAChG,8EAA8E;IAC9E,4EAA4E;IAC5E,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAA;IAC3E,MAAM,UAAU,GACd,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAA;IAE/D,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAEjE,yCAAyC;IACzC,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;IACzD,MAAM,IAAI,GAAG,cAAc,EAAE,YAAY,IAAI,IAAI,CAAA;IAEjD,OAAO;QACL,UAAU,EAAE,YAAY;QACxB,SAAS,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI;KACL,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
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":"
|
|
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 {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
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 }) =>
|
|
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":"
|
|
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;
|
|
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;
|
|
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;
|
|
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 @@
|
|
|
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,
|
|
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"}
|
|
@@ -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;
|
|
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":"
|
|
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
|
-
|
|
5
|
-
|
|
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;
|
|
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;
|
|
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"}
|