@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 @@
|
|
|
1
|
+
{"version":3,"file":"affiliate.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/chains/cosmos/thor/lp/affiliate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,uBAAuB,OAAO,CAAA;AAC3C,eAAO,MAAM,yBAAyB,IAAI,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vultisig affiliate identifier on THORChain.
|
|
3
|
+
*
|
|
4
|
+
* THORName "vi" is the Vultisig affiliate, used across iOS, Windows, and now
|
|
5
|
+
* the agent stack to attribute swaps and LP actions on Midgard.
|
|
6
|
+
*
|
|
7
|
+
* Source of truth: VultisigApp/.../THORChainSwaps.swift uses
|
|
8
|
+
* `affiliateFeeAddress = "vi"` and the production memo fixtures
|
|
9
|
+
* (vultisig-ios/.../TestData/thorchainswap.json) carry `:vi:0`.
|
|
10
|
+
*
|
|
11
|
+
* v1 LP ships at 0 bps so we get Midgard affiliate-stats tracking without
|
|
12
|
+
* taking a fee. Bump the bps constant when product agrees.
|
|
13
|
+
*/
|
|
14
|
+
export const VULTISIG_AFFILIATE_NAME = 'vi';
|
|
15
|
+
export const VULTISIG_AFFILIATE_LP_BPS = 0;
|
|
16
|
+
//# sourceMappingURL=affiliate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"affiliate.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/chains/cosmos/thor/lp/affiliate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAA;AAC3C,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THORChain liquidity-pool primitives.
|
|
3
|
+
*
|
|
4
|
+
* Pure-function memo + payload builders alongside thin Midgard / thornode
|
|
5
|
+
* fetchers. Used by `vultisig-mcp-ts` (which exposes them as MCP tools) and
|
|
6
|
+
* eventually by `vultiagent-poc` once the SDK migration (VA-133) lands.
|
|
7
|
+
*
|
|
8
|
+
* v1 surface is intentionally narrow: asymmetric RUNE-side adds and
|
|
9
|
+
* removes only. Asset-side adds (BTC/ETH/etc → inbound vault) and explicit
|
|
10
|
+
* symmetric pairing are deferred until the end-to-end chat flow has shipped.
|
|
11
|
+
*/
|
|
12
|
+
export { VULTISIG_AFFILIATE_LP_BPS, VULTISIG_AFFILIATE_NAME, } from './affiliate.js';
|
|
13
|
+
export type { AddLpMemoInput, RemoveLpMemoInput } from './memo.js';
|
|
14
|
+
export { addLpMemo, removeLpMemo } from './memo.js';
|
|
15
|
+
export type { BuildThorchainLpAddPayloadInput, BuildThorchainLpRemovePayloadInput, ThorchainLpAddPayload, ThorchainLpRemovePayload, } from './payload.js';
|
|
16
|
+
export { buildThorchainLpAddPayload, buildThorchainLpRemovePayload, } from './payload.js';
|
|
17
|
+
export type { GetThorchainPoolsOptions, ThorchainPoolSummary, } from './pools.js';
|
|
18
|
+
export { getThorchainPools, thorchainMidgardBaseUrl } from './pools.js';
|
|
19
|
+
export type { GetThorchainLpPositionInput, ThorchainLpPosition, } from './position.js';
|
|
20
|
+
export { getThorchainLpPosition } from './position.js';
|
|
21
|
+
export { assertPoolDepositable } from './validation.js';
|
|
22
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/chains/cosmos/thor/lp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EACL,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,aAAa,CAAA;AACpB,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAC/D,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAChD,YAAY,EACV,+BAA+B,EAC/B,kCAAkC,EAClC,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,GAC9B,MAAM,WAAW,CAAA;AAClB,YAAY,EACV,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AACpE,YAAY,EACV,2BAA2B,EAC3B,mBAAmB,GACpB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THORChain liquidity-pool primitives.
|
|
3
|
+
*
|
|
4
|
+
* Pure-function memo + payload builders alongside thin Midgard / thornode
|
|
5
|
+
* fetchers. Used by `vultisig-mcp-ts` (which exposes them as MCP tools) and
|
|
6
|
+
* eventually by `vultiagent-poc` once the SDK migration (VA-133) lands.
|
|
7
|
+
*
|
|
8
|
+
* v1 surface is intentionally narrow: asymmetric RUNE-side adds and
|
|
9
|
+
* removes only. Asset-side adds (BTC/ETH/etc → inbound vault) and explicit
|
|
10
|
+
* symmetric pairing are deferred until the end-to-end chat flow has shipped.
|
|
11
|
+
*/
|
|
12
|
+
export { VULTISIG_AFFILIATE_LP_BPS, VULTISIG_AFFILIATE_NAME, } from './affiliate.js';
|
|
13
|
+
export { addLpMemo, removeLpMemo } from './memo.js';
|
|
14
|
+
export { buildThorchainLpAddPayload, buildThorchainLpRemovePayload, } from './payload.js';
|
|
15
|
+
export { getThorchainPools, thorchainMidgardBaseUrl } from './pools.js';
|
|
16
|
+
export { getThorchainLpPosition } from './position.js';
|
|
17
|
+
export { assertPoolDepositable } from './validation.js';
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/chains/cosmos/thor/lp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EACL,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAOhD,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,GAC9B,MAAM,WAAW,CAAA;AAKlB,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAKpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export type AddLpMemoInput = {
|
|
2
|
+
/** Canonical pool id, e.g. `BTC.BTC` or `ETH.USDC-0X...`. */
|
|
3
|
+
pool: string;
|
|
4
|
+
/**
|
|
5
|
+
* Paired L1 address. Omit for asymmetric adds (the v1 path). When set,
|
|
6
|
+
* THORChain will hold the deposit pending and pair it with a matching
|
|
7
|
+
* deposit from the other side, producing a symmetric position.
|
|
8
|
+
*/
|
|
9
|
+
pairedAddress?: string;
|
|
10
|
+
/** Affiliate THORName. Defaults to `VULTISIG_AFFILIATE_NAME`. */
|
|
11
|
+
affiliate?: string;
|
|
12
|
+
/** Affiliate fee in basis points. Defaults to `VULTISIG_AFFILIATE_LP_BPS`. */
|
|
13
|
+
affiliateBps?: number;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Build a THORChain liquidity-pool add memo.
|
|
17
|
+
*
|
|
18
|
+
* Format: `+:POOL:PAIRED_ADDR:AFFILIATE:BPS`
|
|
19
|
+
*
|
|
20
|
+
* For an asymmetric RUNE-side add with the default Vultisig affiliate at
|
|
21
|
+
* 0 bps the memo looks like `+:BTC.BTC::vi:0`. The empty paired-address slot
|
|
22
|
+
* is intentional — that is what tells THORChain to register the position as
|
|
23
|
+
* asymmetric.
|
|
24
|
+
*/
|
|
25
|
+
export declare const addLpMemo: (input: AddLpMemoInput) => string;
|
|
26
|
+
export type RemoveLpMemoInput = {
|
|
27
|
+
pool: string;
|
|
28
|
+
/** Withdraw fraction in basis points: 1..10000 (10000 = 100%). */
|
|
29
|
+
basisPoints: number;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Build a THORChain liquidity-pool remove memo.
|
|
33
|
+
*
|
|
34
|
+
* Format: `-:POOL:BPS`
|
|
35
|
+
*
|
|
36
|
+
* Withdraws do not include an affiliate suffix per the THORChain memo spec.
|
|
37
|
+
* THORChain enforces a 1-hour lockup after the most recent add — broadcasting
|
|
38
|
+
* a withdraw inside that window will fail at the chain level.
|
|
39
|
+
*/
|
|
40
|
+
export declare const removeLpMemo: ({ pool, basisPoints, }: RemoveLpMemoInput) => string;
|
|
41
|
+
//# sourceMappingURL=memo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memo.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/chains/cosmos/thor/lp/memo.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,cAAc,GAAG;IAC3B,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAA;IACZ;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,8EAA8E;IAC9E,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,SAAS,GAAI,OAAO,cAAc,KAAG,MAMjD,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,kEAAkE;IAClE,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,GAAI,wBAG1B,iBAAiB,KAAG,MAYtB,CAAA"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { VULTISIG_AFFILIATE_LP_BPS, VULTISIG_AFFILIATE_NAME, } from './affiliate.js';
|
|
2
|
+
import { assertValidPoolId } from './pools.js';
|
|
3
|
+
/**
|
|
4
|
+
* Build a THORChain liquidity-pool add memo.
|
|
5
|
+
*
|
|
6
|
+
* Format: `+:POOL:PAIRED_ADDR:AFFILIATE:BPS`
|
|
7
|
+
*
|
|
8
|
+
* For an asymmetric RUNE-side add with the default Vultisig affiliate at
|
|
9
|
+
* 0 bps the memo looks like `+:BTC.BTC::vi:0`. The empty paired-address slot
|
|
10
|
+
* is intentional — that is what tells THORChain to register the position as
|
|
11
|
+
* asymmetric.
|
|
12
|
+
*/
|
|
13
|
+
export const addLpMemo = (input) => {
|
|
14
|
+
assertValidPoolId(input.pool);
|
|
15
|
+
const affiliate = input.affiliate ?? VULTISIG_AFFILIATE_NAME;
|
|
16
|
+
const bps = input.affiliateBps ?? VULTISIG_AFFILIATE_LP_BPS;
|
|
17
|
+
const paired = input.pairedAddress ?? '';
|
|
18
|
+
return `+:${input.pool}:${paired}:${affiliate}:${bps}`;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Build a THORChain liquidity-pool remove memo.
|
|
22
|
+
*
|
|
23
|
+
* Format: `-:POOL:BPS`
|
|
24
|
+
*
|
|
25
|
+
* Withdraws do not include an affiliate suffix per the THORChain memo spec.
|
|
26
|
+
* THORChain enforces a 1-hour lockup after the most recent add — broadcasting
|
|
27
|
+
* a withdraw inside that window will fail at the chain level.
|
|
28
|
+
*/
|
|
29
|
+
export const removeLpMemo = ({ pool, basisPoints, }) => {
|
|
30
|
+
assertValidPoolId(pool);
|
|
31
|
+
if (!Number.isInteger(basisPoints) ||
|
|
32
|
+
basisPoints < 1 ||
|
|
33
|
+
basisPoints > 10000) {
|
|
34
|
+
throw new Error(`removeLpMemo: basisPoints must be an integer in [1, 10000], got ${basisPoints}`);
|
|
35
|
+
}
|
|
36
|
+
return `-:${pool}:${basisPoints}`;
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=memo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memo.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/chains/cosmos/thor/lp/memo.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAiB3C;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAqB,EAAU,EAAE;IACzD,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC7B,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,uBAAuB,CAAA;IAC5D,MAAM,GAAG,GAAG,KAAK,CAAC,YAAY,IAAI,yBAAyB,CAAA;IAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,IAAI,EAAE,CAAA;IACxC,OAAO,KAAK,KAAK,CAAC,IAAI,IAAI,MAAM,IAAI,SAAS,IAAI,GAAG,EAAE,CAAA;AACxD,CAAC,CAAA;AAQD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAC3B,IAAI,EACJ,WAAW,GACO,EAAU,EAAE;IAC9B,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACvB,IACE,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC;QAC9B,WAAW,GAAG,CAAC;QACf,WAAW,GAAG,KAAK,EACnB,CAAC;QACD,MAAM,IAAI,KAAK,CACb,mEAAmE,WAAW,EAAE,CACjF,CAAA;IACH,CAAC;IACD,OAAO,KAAK,IAAI,IAAI,WAAW,EAAE,CAAA;AACnC,CAAC,CAAA"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flat unsigned-transaction payload for an asymmetric RUNE-side LP add.
|
|
3
|
+
*
|
|
4
|
+
* Shape stays single-nesting-level on purpose: this object is what flows
|
|
5
|
+
* through the agent backend's SSE `tx_ready` event, and the audit
|
|
6
|
+
* (2026-04-09) flagged tool result flattening as a known wire-level hazard
|
|
7
|
+
* for nested fields. Every consumer (MCP tool result, backend SSE emit, app
|
|
8
|
+
* `parseServerTx`) reads the same flat keys.
|
|
9
|
+
*/
|
|
10
|
+
export type ThorchainLpAddPayload = {
|
|
11
|
+
kind: 'thorchain_lp_add';
|
|
12
|
+
chain: 'THORChain';
|
|
13
|
+
denom: 'rune';
|
|
14
|
+
/** RUNE base units; 1 RUNE = 100000000 (8 decimals). */
|
|
15
|
+
amount: string;
|
|
16
|
+
/** Pre-built memo via `addLpMemo`. */
|
|
17
|
+
memo: string;
|
|
18
|
+
/** Canonical pool id, denormalized for display. */
|
|
19
|
+
pool: string;
|
|
20
|
+
/** Affiliate THORName, denormalized for display. */
|
|
21
|
+
affiliate: string;
|
|
22
|
+
/** Affiliate fee in basis points, denormalized for display. */
|
|
23
|
+
affiliateBps: number;
|
|
24
|
+
};
|
|
25
|
+
export type ThorchainLpRemovePayload = {
|
|
26
|
+
kind: 'thorchain_lp_remove';
|
|
27
|
+
chain: 'THORChain';
|
|
28
|
+
denom: 'rune';
|
|
29
|
+
/** Dust amount in RUNE base units. The withdraw fraction lives in the memo. */
|
|
30
|
+
amount: string;
|
|
31
|
+
/** Pre-built memo via `removeLpMemo`. */
|
|
32
|
+
memo: string;
|
|
33
|
+
pool: string;
|
|
34
|
+
basisPoints: number;
|
|
35
|
+
};
|
|
36
|
+
export type BuildThorchainLpAddPayloadInput = {
|
|
37
|
+
pool: string;
|
|
38
|
+
amountRuneBaseUnits: string;
|
|
39
|
+
};
|
|
40
|
+
export declare const buildThorchainLpAddPayload: ({ pool, amountRuneBaseUnits, }: BuildThorchainLpAddPayloadInput) => ThorchainLpAddPayload;
|
|
41
|
+
export type BuildThorchainLpRemovePayloadInput = {
|
|
42
|
+
pool: string;
|
|
43
|
+
basisPoints: number;
|
|
44
|
+
};
|
|
45
|
+
export declare const buildThorchainLpRemovePayload: ({ pool, basisPoints, }: BuildThorchainLpRemovePayloadInput) => ThorchainLpRemovePayload;
|
|
46
|
+
//# sourceMappingURL=payload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/chains/cosmos/thor/lp/payload.ts"],"names":[],"mappings":"AAMA;;;;;;;;GAQG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,kBAAkB,CAAA;IACxB,KAAK,EAAE,WAAW,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAA;IACd,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAA;IACZ,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAA;IACjB,+DAA+D;IAC/D,YAAY,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,qBAAqB,CAAA;IAC3B,KAAK,EAAE,WAAW,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAA;IACd,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAeD,MAAM,MAAM,+BAA+B,GAAG;IAC5C,IAAI,EAAE,MAAM,CAAA;IACZ,mBAAmB,EAAE,MAAM,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,0BAA0B,GAAI,gCAGxC,+BAA+B,KAAG,qBAgBpC,CAAA;AAED,MAAM,MAAM,kCAAkC,GAAG;IAC/C,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,6BAA6B,GAAI,wBAG3C,kCAAkC,KAAG,wBAQtC,CAAA"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { VULTISIG_AFFILIATE_LP_BPS, VULTISIG_AFFILIATE_NAME, } from './affiliate.js';
|
|
2
|
+
import { addLpMemo, removeLpMemo } from './memo.js';
|
|
3
|
+
/**
|
|
4
|
+
* Dust amount used for LP removes.
|
|
5
|
+
*
|
|
6
|
+
* Reference: vultisig-windows/core/ui/vault/deposit/keysignPayload/build.ts
|
|
7
|
+
* sends 0.02 RUNE on LP remove transactions — the on-chain amount is just
|
|
8
|
+
* dust to make the cosmos message valid; the actual withdraw fraction lives
|
|
9
|
+
* inside the memo (`-:POOL:BPS`).
|
|
10
|
+
*/
|
|
11
|
+
const LP_REMOVE_DUST_RUNE_BASE_UNITS = '2000000';
|
|
12
|
+
const isPositiveBaseUnitString = (value) => /^\d+$/.test(value) && BigInt(value) > 0n;
|
|
13
|
+
export const buildThorchainLpAddPayload = ({ pool, amountRuneBaseUnits, }) => {
|
|
14
|
+
if (!isPositiveBaseUnitString(amountRuneBaseUnits)) {
|
|
15
|
+
throw new Error(`buildThorchainLpAddPayload: amountRuneBaseUnits must be a positive integer string, got ${amountRuneBaseUnits}`);
|
|
16
|
+
}
|
|
17
|
+
return {
|
|
18
|
+
kind: 'thorchain_lp_add',
|
|
19
|
+
chain: 'THORChain',
|
|
20
|
+
denom: 'rune',
|
|
21
|
+
amount: amountRuneBaseUnits,
|
|
22
|
+
memo: addLpMemo({ pool }),
|
|
23
|
+
pool,
|
|
24
|
+
affiliate: VULTISIG_AFFILIATE_NAME,
|
|
25
|
+
affiliateBps: VULTISIG_AFFILIATE_LP_BPS,
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
export const buildThorchainLpRemovePayload = ({ pool, basisPoints, }) => ({
|
|
29
|
+
kind: 'thorchain_lp_remove',
|
|
30
|
+
chain: 'THORChain',
|
|
31
|
+
denom: 'rune',
|
|
32
|
+
amount: LP_REMOVE_DUST_RUNE_BASE_UNITS,
|
|
33
|
+
memo: removeLpMemo({ pool, basisPoints }),
|
|
34
|
+
pool,
|
|
35
|
+
basisPoints,
|
|
36
|
+
});
|
|
37
|
+
//# sourceMappingURL=payload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payload.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/chains/cosmos/thor/lp/payload.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAuChD;;;;;;;GAOG;AACH,MAAM,8BAA8B,GAAG,SAAS,CAAA;AAEhD,MAAM,wBAAwB,GAAG,CAAC,KAAa,EAAW,EAAE,CAC1D,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;AAO3C,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,EACzC,IAAI,EACJ,mBAAmB,GACa,EAAyB,EAAE;IAC3D,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CACb,0FAA0F,mBAAmB,EAAE,CAChH,CAAA;IACH,CAAC;IACD,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,mBAAmB;QAC3B,IAAI,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC;QACzB,IAAI;QACJ,SAAS,EAAE,uBAAuB;QAClC,YAAY,EAAE,yBAAyB;KACxC,CAAA;AACH,CAAC,CAAA;AAOD,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,EAC5C,IAAI,EACJ,WAAW,GACwB,EAA4B,EAAE,CAAC,CAAC;IACnE,IAAI,EAAE,qBAAqB;IAC3B,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,8BAA8B;IACtC,IAAI,EAAE,YAAY,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IACzC,IAAI;IACJ,WAAW;CACZ,CAAC,CAAA"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Midgard base URL used by every helper in this module. Matches what
|
|
3
|
+
* vultisig-ios and the rujira package use as the default mainnet endpoint.
|
|
4
|
+
*/
|
|
5
|
+
export declare const thorchainMidgardBaseUrl = "https://midgard.ninerealms.com";
|
|
6
|
+
/**
|
|
7
|
+
* Validate a THORChain pool id is in the canonical format.
|
|
8
|
+
*
|
|
9
|
+
* Throws `Error` with the offending value embedded so callers up the
|
|
10
|
+
* stack can surface it to the user. Use this at every public entry
|
|
11
|
+
* point that accepts a pool id from the LLM or external code: it is
|
|
12
|
+
* cheaper than discovering at the build / broadcast / Midgard call
|
|
13
|
+
* that the id is malformed.
|
|
14
|
+
*/
|
|
15
|
+
export declare const assertValidPoolId: (pool: string) => void;
|
|
16
|
+
/**
|
|
17
|
+
* Boolean variant of `assertValidPoolId` for callers that just want to
|
|
18
|
+
* filter / branch instead of throwing.
|
|
19
|
+
*/
|
|
20
|
+
export declare const isValidPoolId: (pool: string) => boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Subset of the Midgard `/v2/pools` shape that the agent stack actually
|
|
23
|
+
* cares about. The full Midgard response carries dozens of fields per pool;
|
|
24
|
+
* we narrow to the ones the LLM needs to pick a pool and present quotes.
|
|
25
|
+
*/
|
|
26
|
+
export type ThorchainPoolSummary = {
|
|
27
|
+
asset: string;
|
|
28
|
+
status: string;
|
|
29
|
+
assetDepth: string;
|
|
30
|
+
runeDepth: string;
|
|
31
|
+
liquidityUnits: string;
|
|
32
|
+
volume24h: string;
|
|
33
|
+
annualPercentageRate: string;
|
|
34
|
+
};
|
|
35
|
+
export type GetThorchainPoolsOptions = {
|
|
36
|
+
/** Defaults to `'available'`. Pass `null` to skip the filter. */
|
|
37
|
+
status?: string | null;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Fetch THORChain pools from Midgard.
|
|
41
|
+
*
|
|
42
|
+
* By default returns only `status=available` pools — the only ones that
|
|
43
|
+
* accept LP adds. Pass `{ status: null }` to fetch every pool regardless.
|
|
44
|
+
*/
|
|
45
|
+
export declare const getThorchainPools: (options?: GetThorchainPoolsOptions) => Promise<ThorchainPoolSummary[]>;
|
|
46
|
+
//# sourceMappingURL=pools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pools.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/chains/cosmos/thor/lp/pools.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,uBAAuB,mCAAmC,CAAA;AA2BvE;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,KAAG,IAahD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,KAAG,OAG5C,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,oBAAoB,EAAE,MAAM,CAAA;CAC7B,CAAA;AAsBD,MAAM,MAAM,wBAAwB,GAAG;IACrC,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACvB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAC5B,UAAS,wBAA6B,KACrC,OAAO,CAAC,oBAAoB,EAAE,CAahC,CAAA"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { queryUrl } from '@vultisig/lib-utils/query/queryUrl';
|
|
2
|
+
/**
|
|
3
|
+
* Midgard base URL used by every helper in this module. Matches what
|
|
4
|
+
* vultisig-ios and the rujira package use as the default mainnet endpoint.
|
|
5
|
+
*/
|
|
6
|
+
export const thorchainMidgardBaseUrl = 'https://midgard.ninerealms.com';
|
|
7
|
+
/**
|
|
8
|
+
* Canonical THORChain pool-id format: `CHAIN.ASSET` for native assets
|
|
9
|
+
* (e.g. `BTC.BTC`, `ETH.ETH`) or `CHAIN.ASSET-CONTRACT` for ERC-20-style
|
|
10
|
+
* tokens (e.g. `ETH.USDC-0XA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48`).
|
|
11
|
+
*
|
|
12
|
+
* THORChain itself stores pool ids in uppercase. Lowercase variants
|
|
13
|
+
* round-trip through Midgard but several internal lookups (and the
|
|
14
|
+
* thornode `/thorchain/pool/{asset}` endpoint) are case-sensitive on the
|
|
15
|
+
* chain prefix and contract section, so we enforce uppercase + the
|
|
16
|
+
* documented separators here to fail fast on typos.
|
|
17
|
+
*
|
|
18
|
+
* Examples accepted:
|
|
19
|
+
* BTC.BTC
|
|
20
|
+
* LTC.LTC
|
|
21
|
+
* ETH.USDC-0XA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48
|
|
22
|
+
* BSC.BNB
|
|
23
|
+
*
|
|
24
|
+
* Examples rejected:
|
|
25
|
+
* "btc.btc" (lowercase)
|
|
26
|
+
* "BTC/BTC" (wrong separator)
|
|
27
|
+
* "BTC" (no asset section)
|
|
28
|
+
* "BTC.BTC.BTC" (extra section)
|
|
29
|
+
*/
|
|
30
|
+
const POOL_ID_RE = /^[A-Z0-9]+\.[A-Z0-9]+(-[A-Z0-9]+)?$/;
|
|
31
|
+
/**
|
|
32
|
+
* Validate a THORChain pool id is in the canonical format.
|
|
33
|
+
*
|
|
34
|
+
* Throws `Error` with the offending value embedded so callers up the
|
|
35
|
+
* stack can surface it to the user. Use this at every public entry
|
|
36
|
+
* point that accepts a pool id from the LLM or external code: it is
|
|
37
|
+
* cheaper than discovering at the build / broadcast / Midgard call
|
|
38
|
+
* that the id is malformed.
|
|
39
|
+
*/
|
|
40
|
+
export const assertValidPoolId = (pool) => {
|
|
41
|
+
if (typeof pool !== 'string' || pool.length === 0) {
|
|
42
|
+
throw new Error(`assertValidPoolId: pool id must be a non-empty string, got ${typeof pool} ${pool === '' ? '""' : ''}`);
|
|
43
|
+
}
|
|
44
|
+
if (!POOL_ID_RE.test(pool)) {
|
|
45
|
+
throw new Error(`assertValidPoolId: ${JSON.stringify(pool)} is not a valid THORChain pool id. ` +
|
|
46
|
+
`Expected uppercase CHAIN.ASSET (e.g. "BTC.BTC") or CHAIN.ASSET-CONTRACT ` +
|
|
47
|
+
`(e.g. "ETH.USDC-0XA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48").`);
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Boolean variant of `assertValidPoolId` for callers that just want to
|
|
52
|
+
* filter / branch instead of throwing.
|
|
53
|
+
*/
|
|
54
|
+
export const isValidPoolId = (pool) => {
|
|
55
|
+
if (typeof pool !== 'string' || pool.length === 0)
|
|
56
|
+
return false;
|
|
57
|
+
return POOL_ID_RE.test(pool);
|
|
58
|
+
};
|
|
59
|
+
const normalizePool = (raw) => ({
|
|
60
|
+
asset: raw.asset ?? '',
|
|
61
|
+
status: raw.status ?? '',
|
|
62
|
+
assetDepth: raw.assetDepth ?? '0',
|
|
63
|
+
runeDepth: raw.runeDepth ?? '0',
|
|
64
|
+
liquidityUnits: raw.liquidityUnits ?? '0',
|
|
65
|
+
volume24h: raw.volume24h ?? '0',
|
|
66
|
+
annualPercentageRate: raw.annualPercentageRate ?? '0',
|
|
67
|
+
});
|
|
68
|
+
/**
|
|
69
|
+
* Fetch THORChain pools from Midgard.
|
|
70
|
+
*
|
|
71
|
+
* By default returns only `status=available` pools — the only ones that
|
|
72
|
+
* accept LP adds. Pass `{ status: null }` to fetch every pool regardless.
|
|
73
|
+
*/
|
|
74
|
+
export const getThorchainPools = async (options = {}) => {
|
|
75
|
+
const status = options.status === undefined ? 'available' : options.status;
|
|
76
|
+
const url = status === null
|
|
77
|
+
? `${thorchainMidgardBaseUrl}/v2/pools`
|
|
78
|
+
: `${thorchainMidgardBaseUrl}/v2/pools?status=${encodeURIComponent(status)}`;
|
|
79
|
+
const raw = await queryUrl(url);
|
|
80
|
+
if (!Array.isArray(raw)) {
|
|
81
|
+
throw new Error(`getThorchainPools: expected an array from ${url}, got ${typeof raw}`);
|
|
82
|
+
}
|
|
83
|
+
return raw.map(normalizePool);
|
|
84
|
+
};
|
|
85
|
+
//# sourceMappingURL=pools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pools.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/chains/cosmos/thor/lp/pools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAE7D;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,gCAAgC,CAAA;AAEvE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,GAAG,qCAAqC,CAAA;AAExD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAQ,EAAE;IACtD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CACb,8DAA8D,OAAO,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACvG,CAAA;IACH,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CACb,sBAAsB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qCAAqC;YAC7E,0EAA0E;YAC1E,+DAA+D,CAClE,CAAA;IACH,CAAC;AACH,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAY,EAAW,EAAE;IACrD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAC/D,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC9B,CAAC,CAAA;AA2BD,MAAM,aAAa,GAAG,CAAC,GAAY,EAAwB,EAAE,CAAC,CAAC;IAC7D,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE;IACtB,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE;IACxB,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,GAAG;IACjC,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,GAAG;IAC/B,cAAc,EAAE,GAAG,CAAC,cAAc,IAAI,GAAG;IACzC,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,GAAG;IAC/B,oBAAoB,EAAE,GAAG,CAAC,oBAAoB,IAAI,GAAG;CACtD,CAAC,CAAA;AAOF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,UAAoC,EAAE,EACL,EAAE;IACnC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAA;IAC1E,MAAM,GAAG,GACP,MAAM,KAAK,IAAI;QACb,CAAC,CAAC,GAAG,uBAAuB,WAAW;QACvC,CAAC,CAAC,GAAG,uBAAuB,oBAAoB,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAA;IAChF,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAU,GAAG,CAAC,CAAA;IACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,6CAA6C,GAAG,SAAS,OAAO,GAAG,EAAE,CACtE,CAAA;IACH,CAAC;IACD,OAAQ,GAAiB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;AAC9C,CAAC,CAAA"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Subset of a Midgard `/v2/member/{address}` pool entry. Midgard returns
|
|
3
|
+
* many more fields per position — we keep just the ones the agent stack
|
|
4
|
+
* surfaces in chat (units, added amounts, pending state, last-add timestamp).
|
|
5
|
+
*/
|
|
6
|
+
export type ThorchainLpPosition = {
|
|
7
|
+
pool: string;
|
|
8
|
+
liquidityUnits: string;
|
|
9
|
+
runeAdded: string;
|
|
10
|
+
assetAdded: string;
|
|
11
|
+
runePending: string;
|
|
12
|
+
assetPending: string;
|
|
13
|
+
runeAddress: string;
|
|
14
|
+
assetAddress: string;
|
|
15
|
+
/** Unix seconds (Midgard returns it as a string). */
|
|
16
|
+
dateLastAdded: string;
|
|
17
|
+
/**
|
|
18
|
+
* True when either side has a non-zero pending amount. Common for
|
|
19
|
+
* asymmetric adds that THORChain has not yet credited.
|
|
20
|
+
*/
|
|
21
|
+
isPending: boolean;
|
|
22
|
+
};
|
|
23
|
+
export type GetThorchainLpPositionInput = {
|
|
24
|
+
/** bech32 thor1... address (the RUNE side of the position). */
|
|
25
|
+
thorAddress: string;
|
|
26
|
+
/** Canonical pool id to look up. */
|
|
27
|
+
pool: string;
|
|
28
|
+
};
|
|
29
|
+
export declare const getThorchainLpPosition: ({ thorAddress, pool, }: GetThorchainLpPositionInput) => Promise<ThorchainLpPosition | null>;
|
|
30
|
+
//# sourceMappingURL=position.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/chains/cosmos/thor/lp/position.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,qDAAqD;IACrD,aAAa,EAAE,MAAM,CAAA;IACrB;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAA;CACnB,CAAA;AAwCD,MAAM,MAAM,2BAA2B,GAAG;IACxC,+DAA+D;IAC/D,WAAW,EAAE,MAAM,CAAA;IACnB,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAkBD,eAAO,MAAM,sBAAsB,GAAU,wBAG1C,2BAA2B,KAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAelE,CAAA"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { HttpResponseError } from '@vultisig/lib-utils/fetch/HttpResponseError';
|
|
2
|
+
import { queryUrl } from '@vultisig/lib-utils/query/queryUrl';
|
|
3
|
+
import { assertValidPoolId, thorchainMidgardBaseUrl } from './pools.js';
|
|
4
|
+
const isNonZero = (s) => {
|
|
5
|
+
if (!s)
|
|
6
|
+
return false;
|
|
7
|
+
try {
|
|
8
|
+
return BigInt(s) > 0n;
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
const normalizeMemberPool = (raw) => ({
|
|
15
|
+
pool: raw.pool ?? '',
|
|
16
|
+
liquidityUnits: raw.liquidityUnits ?? '0',
|
|
17
|
+
runeAdded: raw.runeAdded ?? '0',
|
|
18
|
+
assetAdded: raw.assetAdded ?? '0',
|
|
19
|
+
runePending: raw.runePending ?? '0',
|
|
20
|
+
assetPending: raw.assetPending ?? '0',
|
|
21
|
+
runeAddress: raw.runeAddress ?? '',
|
|
22
|
+
assetAddress: raw.assetAddress ?? '',
|
|
23
|
+
dateLastAdded: raw.dateLastAdded ?? '0',
|
|
24
|
+
isPending: isNonZero(raw.runePending) || isNonZero(raw.assetPending),
|
|
25
|
+
});
|
|
26
|
+
/**
|
|
27
|
+
* Fetch a single LP position from Midgard.
|
|
28
|
+
*
|
|
29
|
+
* Returns `null` when:
|
|
30
|
+
* - the address has no positions at all (Midgard returns 404), or
|
|
31
|
+
* - the address has positions but none in the requested pool.
|
|
32
|
+
*/
|
|
33
|
+
/**
|
|
34
|
+
* Detect a 404 from queryUrl by reading the typed `HttpResponseError.status`
|
|
35
|
+
* field that `@vultisig/lib-utils` `assertFetchResponse` now throws. The
|
|
36
|
+
* previous implementation string-matched the error message; that worked
|
|
37
|
+
* but was brittle to wording changes. See NeoMakinG's PR #236 review note.
|
|
38
|
+
*/
|
|
39
|
+
const isMidgardNotFoundError = (err) => err instanceof HttpResponseError && err.status === 404;
|
|
40
|
+
export const getThorchainLpPosition = async ({ thorAddress, pool, }) => {
|
|
41
|
+
assertValidPoolId(pool);
|
|
42
|
+
const url = `${thorchainMidgardBaseUrl}/v2/member/${encodeURIComponent(thorAddress)}`;
|
|
43
|
+
let raw;
|
|
44
|
+
try {
|
|
45
|
+
raw = await queryUrl(url);
|
|
46
|
+
}
|
|
47
|
+
catch (err) {
|
|
48
|
+
// Midgard returns 404 for any address it has not indexed yet — treat as
|
|
49
|
+
// "no position". Other errors bubble.
|
|
50
|
+
if (isMidgardNotFoundError(err))
|
|
51
|
+
return null;
|
|
52
|
+
throw err;
|
|
53
|
+
}
|
|
54
|
+
const pools = Array.isArray(raw.pools) ? raw.pools : [];
|
|
55
|
+
const found = pools.find(p => p.pool === pool);
|
|
56
|
+
return found ? normalizeMemberPool(found) : null;
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=position.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"position.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/chains/cosmos/thor/lp/position.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAA;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAE7D,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAyCpE,MAAM,SAAS,GAAG,CAAC,CAAqB,EAAW,EAAE;IACnD,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAA;IACpB,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC,CAAA;AAED,MAAM,mBAAmB,GAAG,CAAC,GAAkB,EAAuB,EAAE,CAAC,CAAC;IACxE,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE;IACpB,cAAc,EAAE,GAAG,CAAC,cAAc,IAAI,GAAG;IACzC,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,GAAG;IAC/B,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,GAAG;IACjC,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,GAAG;IACnC,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,GAAG;IACrC,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,EAAE;IAClC,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,EAAE;IACpC,aAAa,EAAE,GAAG,CAAC,aAAa,IAAI,GAAG;IACvC,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC;CACrE,CAAC,CAAA;AASF;;;;;;GAMG;AACH;;;;;GAKG;AACH,MAAM,sBAAsB,GAAG,CAAC,GAAY,EAAW,EAAE,CACvD,GAAG,YAAY,iBAAiB,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,CAAA;AAExD,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EAAE,EAC3C,WAAW,EACX,IAAI,GACwB,EAAuC,EAAE;IACrE,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACvB,MAAM,GAAG,GAAG,GAAG,uBAAuB,cAAc,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAA;IACrF,IAAI,GAAsB,CAAA;IAC1B,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,QAAQ,CAAoB,GAAG,CAAC,CAAA;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,wEAAwE;QACxE,sCAAsC;QACtC,IAAI,sBAAsB,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAA;QAC5C,MAAM,GAAG,CAAA;IACX,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;IACvD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;IAC9C,OAAO,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAClD,CAAC,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Verify a THORChain pool is currently depositable.
|
|
3
|
+
*
|
|
4
|
+
* Hits the thornode `/thorchain/pool/{asset}` endpoint and asserts the
|
|
5
|
+
* `status` field is `Available`. Throws on `Staged`, `Suspended`, or any
|
|
6
|
+
* other non-Available state, and on network failures or unexpected payloads.
|
|
7
|
+
*
|
|
8
|
+
* Use this as the fail-fast gate before building an LP add payload — it is
|
|
9
|
+
* cheaper than building the payload first and discovering at broadcast time
|
|
10
|
+
* that the pool is paused.
|
|
11
|
+
*/
|
|
12
|
+
export declare const assertPoolDepositable: (pool: string) => Promise<void>;
|
|
13
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/chains/cosmos/thor/lp/validation.ts"],"names":[],"mappings":"AAcA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,IAAI,CAetE,CAAA"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Chain } from '@vultisig/core-chain/Chain';
|
|
2
|
+
import { cosmosRpcUrl } from '@vultisig/core-chain/chains/cosmos/cosmosRpcUrl';
|
|
3
|
+
import { queryUrl } from '@vultisig/lib-utils/query/queryUrl';
|
|
4
|
+
import { assertValidPoolId } from './pools.js';
|
|
5
|
+
const extractPoolStatus = (raw) => {
|
|
6
|
+
if (raw && typeof raw === 'object' && 'status' in raw) {
|
|
7
|
+
const status = raw.status;
|
|
8
|
+
return typeof status === 'string' ? status : undefined;
|
|
9
|
+
}
|
|
10
|
+
return undefined;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Verify a THORChain pool is currently depositable.
|
|
14
|
+
*
|
|
15
|
+
* Hits the thornode `/thorchain/pool/{asset}` endpoint and asserts the
|
|
16
|
+
* `status` field is `Available`. Throws on `Staged`, `Suspended`, or any
|
|
17
|
+
* other non-Available state, and on network failures or unexpected payloads.
|
|
18
|
+
*
|
|
19
|
+
* Use this as the fail-fast gate before building an LP add payload — it is
|
|
20
|
+
* cheaper than building the payload first and discovering at broadcast time
|
|
21
|
+
* that the pool is paused.
|
|
22
|
+
*/
|
|
23
|
+
export const assertPoolDepositable = async (pool) => {
|
|
24
|
+
assertValidPoolId(pool);
|
|
25
|
+
const url = `${cosmosRpcUrl[Chain.THORChain]}/thorchain/pool/${encodeURIComponent(pool)}`;
|
|
26
|
+
const raw = await queryUrl(url);
|
|
27
|
+
const status = extractPoolStatus(raw);
|
|
28
|
+
if (status === undefined) {
|
|
29
|
+
throw new Error(`assertPoolDepositable: pool ${pool} response from ${url} did not include a string \`status\` field`);
|
|
30
|
+
}
|
|
31
|
+
if (status !== 'Available') {
|
|
32
|
+
throw new Error(`assertPoolDepositable: pool ${pool} status is ${status}, must be Available for LP add`);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/chains/cosmos/thor/lp/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,iDAAiD,CAAA;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAE7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAE3C,MAAM,iBAAiB,GAAG,CAAC,GAAY,EAAsB,EAAE;IAC7D,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,QAAQ,IAAI,GAAG,EAAE,CAAC;QACtD,MAAM,MAAM,GAAI,GAA2B,CAAC,MAAM,CAAA;QAClD,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;IACxD,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAE,IAAY,EAAiB,EAAE;IACzE,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACvB,MAAM,GAAG,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,mBAAmB,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAA;IACzF,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAU,GAAG,CAAC,CAAA;IACxC,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAA;IACrC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,+BAA+B,IAAI,kBAAkB,GAAG,4CAA4C,CACrG,CAAA;IACH,CAAC;IACD,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CACb,+BAA+B,IAAI,cAAc,MAAM,gCAAgC,CACxF,CAAA;IACH,CAAC;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** Standard Polkadot signer payload for dApp transaction signing. */
|
|
2
|
+
export type PolkadotSignerPayloadJSON = {
|
|
3
|
+
address: string;
|
|
4
|
+
blockHash: string;
|
|
5
|
+
blockNumber: string;
|
|
6
|
+
era: string;
|
|
7
|
+
genesisHash: string;
|
|
8
|
+
method: string;
|
|
9
|
+
nonce: string;
|
|
10
|
+
specVersion: string;
|
|
11
|
+
tip: string;
|
|
12
|
+
transactionVersion: string;
|
|
13
|
+
signedExtensions: string[];
|
|
14
|
+
version: number;
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=PolkadotSignerPayload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PolkadotSignerPayload.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/polkadot/dapp/PolkadotSignerPayload.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,MAAM,CAAA;IACX,kBAAkB,EAAE,MAAM,CAAA;IAC1B,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PolkadotSignerPayload.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/polkadot/dapp/PolkadotSignerPayload.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { PolkadotSignerPayloadJSON } from './PolkadotSignerPayload.js';
|
|
2
|
+
/**
|
|
3
|
+
* Construct the raw signing payload bytes from a Polkadot SignerPayloadJSON.
|
|
4
|
+
*
|
|
5
|
+
* Follows the Polkadot extrinsic payload v4 encoding:
|
|
6
|
+
* method + era + compact(nonce) + compact(tip) + LE-u32(specVersion) +
|
|
7
|
+
* LE-u32(transactionVersion) + genesisHash + blockHash
|
|
8
|
+
*
|
|
9
|
+
* If the payload exceeds 256 bytes, it is blake2b-256 hashed before signing.
|
|
10
|
+
*/
|
|
11
|
+
export declare const constructPolkadotSigningPayload: (payload: PolkadotSignerPayloadJSON) => Uint8Array;
|
|
12
|
+
//# sourceMappingURL=constructSigningPayload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constructSigningPayload.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/polkadot/dapp/constructSigningPayload.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAInE;;;;;;;;GAQG;AACH,eAAO,MAAM,+BAA+B,GAC1C,SAAS,yBAAyB,KACjC,UAuCF,CAAA"}
|