@vultisig/core-chain 4.1.1 → 5.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 +90 -0
- package/dist/Chain.d.ts +0 -4
- package/dist/Chain.d.ts.map +1 -1
- package/dist/Chain.js +0 -1
- package/dist/Chain.js.map +1 -1
- package/dist/ChainKind.d.ts +0 -1
- package/dist/ChainKind.d.ts.map +1 -1
- package/dist/ChainKind.js +0 -1
- package/dist/ChainKind.js.map +1 -1
- package/dist/chainRegistry.d.ts +0 -1
- package/dist/chainRegistry.d.ts.map +1 -1
- package/dist/chainRegistry.js +0 -1
- package/dist/chainRegistry.js.map +1 -1
- package/dist/chains/cosmos/account/getCosmosAccountInfo.d.ts.map +1 -1
- package/dist/chains/cosmos/account/getCosmosAccountInfo.js +0 -5
- package/dist/chains/cosmos/account/getCosmosAccountInfo.js.map +1 -1
- package/dist/chains/cosmos/chainInfo.d.ts.map +1 -1
- package/dist/chains/cosmos/chainInfo.js +0 -1
- package/dist/chains/cosmos/chainInfo.js.map +1 -1
- package/dist/chains/cosmos/cosmosFeeCoinDenom.d.ts.map +1 -1
- package/dist/chains/cosmos/cosmosFeeCoinDenom.js +0 -1
- package/dist/chains/cosmos/cosmosFeeCoinDenom.js.map +1 -1
- package/dist/chains/cosmos/cosmosGasLimitRecord.d.ts.map +1 -1
- package/dist/chains/cosmos/cosmosGasLimitRecord.js +0 -2
- package/dist/chains/cosmos/cosmosGasLimitRecord.js.map +1 -1
- package/dist/chains/cosmos/cosmosMemoCap.d.ts.map +1 -1
- package/dist/chains/cosmos/cosmosMemoCap.js +0 -1
- package/dist/chains/cosmos/cosmosMemoCap.js.map +1 -1
- package/dist/chains/cosmos/cosmosRpcUrl.d.ts.map +1 -1
- package/dist/chains/cosmos/cosmosRpcUrl.js +0 -3
- package/dist/chains/cosmos/cosmosRpcUrl.js.map +1 -1
- package/dist/chains/cosmos/gas.d.ts.map +1 -1
- package/dist/chains/cosmos/gas.js +0 -1
- package/dist/chains/cosmos/gas.js.map +1 -1
- package/dist/chains/cosmos/tendermintRpcUrl.d.ts.map +1 -1
- package/dist/chains/cosmos/tendermintRpcUrl.js +0 -1
- package/dist/chains/cosmos/tendermintRpcUrl.js.map +1 -1
- package/dist/chains/cosmos/thor/thorchainLp.d.ts.map +1 -1
- package/dist/chains/cosmos/thor/thorchainLp.js +0 -1
- package/dist/chains/cosmos/thor/thorchainLp.js.map +1 -1
- package/dist/chains/ripple/issuedCurrency.d.ts +13 -3
- package/dist/chains/ripple/issuedCurrency.d.ts.map +1 -1
- package/dist/chains/ripple/issuedCurrency.js +65 -6
- package/dist/chains/ripple/issuedCurrency.js.map +1 -1
- package/dist/chains/ripple/trustLine.d.ts +22 -0
- package/dist/chains/ripple/trustLine.d.ts.map +1 -0
- package/dist/chains/ripple/trustLine.js +14 -0
- package/dist/chains/ripple/trustLine.js.map +1 -0
- package/dist/chains/ton/address.d.ts +32 -0
- package/dist/chains/ton/address.d.ts.map +1 -1
- package/dist/chains/ton/address.js +45 -0
- package/dist/chains/ton/address.js.map +1 -1
- package/dist/chains/ton/api.d.ts +49 -0
- package/dist/chains/ton/api.d.ts.map +1 -1
- package/dist/chains/ton/api.js +131 -24
- package/dist/chains/ton/api.js.map +1 -1
- package/dist/chains/ton/comment.d.ts +51 -0
- package/dist/chains/ton/comment.d.ts.map +1 -0
- package/dist/chains/ton/comment.js +75 -0
- package/dist/chains/ton/comment.js.map +1 -0
- package/dist/chains/ton/jetton/symbol.d.ts +9 -0
- package/dist/chains/ton/jetton/symbol.d.ts.map +1 -0
- package/dist/chains/ton/jetton/symbol.js +61 -0
- package/dist/chains/ton/jetton/symbol.js.map +1 -0
- package/dist/chains/ton/jetton/verification.d.ts +35 -0
- package/dist/chains/ton/jetton/verification.d.ts.map +1 -0
- package/dist/chains/ton/jetton/verification.js +45 -0
- package/dist/chains/ton/jetton/verification.js.map +1 -0
- package/dist/chains/ton/jetton/verifiedRegistry.d.ts +43 -0
- package/dist/chains/ton/jetton/verifiedRegistry.d.ts.map +1 -0
- package/dist/chains/ton/jetton/verifiedRegistry.js +94 -0
- package/dist/chains/ton/jetton/verifiedRegistry.js.map +1 -0
- package/dist/chains/ton/messageBounce.d.ts +17 -0
- package/dist/chains/ton/messageBounce.d.ts.map +1 -0
- package/dist/chains/ton/messageBounce.js +41 -0
- package/dist/chains/ton/messageBounce.js.map +1 -0
- package/dist/chains/tron/getTronBlockInfo.d.ts.map +1 -1
- package/dist/chains/tron/getTronBlockInfo.js +4 -5
- package/dist/chains/tron/getTronBlockInfo.js.map +1 -1
- package/dist/coin/balance/resolvers/ripple.d.ts.map +1 -1
- package/dist/coin/balance/resolvers/ripple.js +3 -2
- package/dist/coin/balance/resolvers/ripple.js.map +1 -1
- package/dist/coin/chainFeeCoin.d.ts.map +1 -1
- package/dist/coin/chainFeeCoin.js +0 -5
- package/dist/coin/chainFeeCoin.js.map +1 -1
- package/dist/coin/coinType.d.ts.map +1 -1
- package/dist/coin/coinType.js +0 -1
- 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/ton.d.ts +15 -0
- package/dist/coin/find/resolvers/ton.d.ts.map +1 -0
- package/dist/coin/find/resolvers/ton.js +61 -0
- package/dist/coin/find/resolvers/ton.js.map +1 -0
- package/dist/coin/knownTokens/cosmos.d.ts.map +1 -1
- package/dist/coin/knownTokens/cosmos.js +0 -64
- package/dist/coin/knownTokens/cosmos.js.map +1 -1
- package/dist/coin/knownTokens/index.d.ts +1 -1
- package/dist/coin/knownTokens/index.d.ts.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/tokenVerification.d.ts +13 -0
- package/dist/coin/tokenVerification.d.ts.map +1 -0
- package/dist/coin/tokenVerification.js +12 -0
- package/dist/coin/tokenVerification.js.map +1 -0
- package/dist/swap/general/swapkit/SwapKitEnabledChains.d.ts +14 -3
- package/dist/swap/general/swapkit/SwapKitEnabledChains.d.ts.map +1 -1
- package/dist/swap/general/swapkit/SwapKitEnabledChains.js +14 -1
- package/dist/swap/general/swapkit/SwapKitEnabledChains.js.map +1 -1
- package/dist/swap/general/swapkit/SwapKitProviders.d.ts +19 -3
- package/dist/swap/general/swapkit/SwapKitProviders.d.ts.map +1 -1
- package/dist/swap/general/swapkit/SwapKitProviders.js +161 -8
- package/dist/swap/general/swapkit/SwapKitProviders.js.map +1 -1
- package/dist/swap/general/swapkit/api/getSwapKitQuote.d.ts +1 -3
- package/dist/swap/general/swapkit/api/getSwapKitQuote.d.ts.map +1 -1
- package/dist/swap/general/swapkit/api/getSwapKitQuote.js +148 -78
- package/dist/swap/general/swapkit/api/getSwapKitQuote.js.map +1 -1
- package/dist/swap/general/swapkit/getSwapKitTrackerUrl.d.ts +2 -1
- package/dist/swap/general/swapkit/getSwapKitTrackerUrl.d.ts.map +1 -1
- package/dist/swap/general/swapkit/getSwapKitTrackerUrl.js +2 -1
- package/dist/swap/general/swapkit/getSwapKitTrackerUrl.js.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 +0 -2
- package/dist/swap/native/NativeSwapChain.js.map +1 -1
- package/dist/swap/native/limitSwapMemo.d.ts.map +1 -1
- package/dist/swap/native/limitSwapMemo.js +18 -5
- package/dist/swap/native/limitSwapMemo.js.map +1 -1
- package/dist/swap/native/thorchainMemoAsset.d.ts +1 -1
- package/dist/swap/native/thorchainMemoAsset.js +1 -1
- package/dist/swap/quote/findSwapQuote.d.ts.map +1 -1
- package/dist/swap/quote/findSwapQuote.js +2 -2
- package/dist/swap/quote/findSwapQuote.js.map +1 -1
- package/dist/swap/skip/skipRouting.d.ts.map +1 -1
- package/dist/swap/skip/skipRouting.js +0 -1
- package/dist/swap/skip/skipRouting.js.map +1 -1
- package/dist/swap/swapEnabledChains.d.ts +1 -1
- package/dist/swap/swapEnabledChains.d.ts.map +1 -1
- package/dist/tx/broadcast/resolvers/tron.d.ts.map +1 -1
- package/dist/tx/broadcast/resolvers/tron.js +6 -1
- package/dist/tx/broadcast/resolvers/tron.js.map +1 -1
- package/dist/tx/broadcast/verifyBroadcastByHash.js +1 -1
- package/dist/tx/broadcast/verifyBroadcastByHash.js.map +1 -1
- package/dist/tx/status/resolver.d.ts +9 -1
- package/dist/tx/status/resolver.d.ts.map +1 -1
- package/dist/tx/status/resolvers/ripple.d.ts.map +1 -1
- package/dist/tx/status/resolvers/ripple.js +62 -0
- package/dist/tx/status/resolvers/ripple.js.map +1 -1
- package/dist/tx/status/resolvers/tron.d.ts.map +1 -1
- package/dist/tx/status/resolvers/tron.js +18 -2
- package/dist/tx/status/resolvers/tron.js.map +1 -1
- package/package.json +41 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skipRouting.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/skip/skipRouting.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,WAAW,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAE9D;;;;;;GAMG;AACH,MAAM,YAAY,GAAuB,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC,CAAA;AAE/F,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,KAAc,CAAC,CAAA;AAExF;;;;;;;;;GASG;AACH,MAAM,2BAA2B,GAAuB,IAAI,GAAG,CAAC;IAC9D,WAAW,CAAC,MAAM;IAClB,WAAW,CAAC,OAAO;IACnB,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"skipRouting.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/skip/skipRouting.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,WAAW,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAE9D;;;;;;GAMG;AACH,MAAM,YAAY,GAAuB,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC,CAAA;AAE/F,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,KAAc,CAAC,CAAA;AAExF;;;;;;;;;GASG;AACH,MAAM,2BAA2B,GAAuB,IAAI,GAAG,CAAC;IAC9D,WAAW,CAAC,MAAM;IAClB,WAAW,CAAC,OAAO;IACnB,WAAW,CAAC,KAAK;IACjB,WAAW,CAAC,YAAY;IACxB,WAAW,CAAC,KAAK;IACjB,WAAW,CAAC,IAAI;IAChB,WAAW,CAAC,KAAK;CAClB,CAAC,CAAA;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,2BAA2B,CAAC,GAAG,CAAC,KAAc,CAAC,CAAA;AAE9G;;;;GAIG;AACH,MAAM,yBAAyB,GAAuB,IAAI,GAAG,CAAC;IAC5D,QAAQ,CAAC,QAAQ;IACjB,QAAQ,CAAC,QAAQ;IACjB,QAAQ,CAAC,QAAQ;IACjB,QAAQ,CAAC,IAAI;IACb,QAAQ,CAAC,OAAO;IAChB,QAAQ,CAAC,SAAS;IAClB,QAAQ,CAAC,GAAG;CACb,CAAC,CAAA;AAEF,MAAM,uBAAuB,GAAG,CAAC,KAAa,EAAW,EAAE,CACzD,aAAa,CAAC,KAAc,EAAE,KAAK,CAAC,IAAI,yBAAyB,CAAC,GAAG,CAAC,KAAc,CAAC,CAAA;AAEvF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,SAAiB,EAAE,OAAe,EAAW,EAAE;IAC9E,MAAM,cAAc,GAClB,CAAC,mBAAmB,CAAC,SAAS,CAAC,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAC;QACpE,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,uBAAuB,CAAC,SAAS,CAAC,CAAC,CAAA;IACtE,MAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAA;IAC/E,MAAM,aAAa,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,CAAA;IACtE,OAAO,QAAQ,IAAI,aAAa,IAAI,cAAc,CAAA;AACpD,CAAC,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const swapEnabledChains: readonly [...("Arbitrum" | "Base" | "Blast" | "Optimism" | "Zksync" | "Mantle" | "Robinhood" | "Avalanche" | "CronosChain" | "BSC" | "Ethereum" | "Polygon" | "Hyperliquid" | "Sei" | "Cosmos" | "
|
|
1
|
+
export declare const swapEnabledChains: readonly [...("Arbitrum" | "Base" | "Blast" | "Optimism" | "Zksync" | "Mantle" | "Robinhood" | "Avalanche" | "CronosChain" | "BSC" | "Ethereum" | "Polygon" | "Hyperliquid" | "Sei" | "Cosmos" | "Noble" | "THORChain" | "MayaChain" | import("../Chain.js").UtxoChain | import("../Chain.js").OtherChain.Solana | import("../Chain.js").OtherChain.Ripple | import("../Chain.js").OtherChain.Tron | import("../Chain.js").OtherChain.Cardano)[], import("../Chain.js").OtherChain.Solana, "Ethereum", "Arbitrum", "Avalanche", "Base", "BSC", "Optimism", "Polygon", "Hyperliquid", import("../Chain.js").OtherChain.Solana, import("../Chain.js").UtxoChain.Bitcoin, import("../Chain.js").UtxoChain.BitcoinCash, import("../Chain.js").UtxoChain.Dogecoin, import("../Chain.js").UtxoChain.Litecoin, import("../Chain.js").OtherChain.Ripple, import("../Chain.js").OtherChain.Ton, import("../Chain.js").OtherChain.Tron, import("../Chain.js").UtxoChain.Zcash, import("../Chain.js").OtherChain.Sui, import("../Chain.js").OtherChain.Cardano, "Robinhood", "Cosmos", import("../Chain.js").UtxoChain.Dash, "MayaChain", "THORChain"];
|
|
2
2
|
//# sourceMappingURL=swapEnabledChains.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swapEnabledChains.d.ts","sourceRoot":"","sources":["../../../../../packages/core/chain/swap/swapEnabledChains.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"swapEnabledChains.d.ts","sourceRoot":"","sources":["../../../../../packages/core/chain/swap/swapEnabledChains.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,iBAAiB,uhCASpB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tron.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/broadcast/resolvers/tron.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"tron.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/broadcast/resolvers/tron.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAKvD,OAAO,EAAsC,mBAAmB,EAA6B,MAAM,aAAa,CAAA;AAGhH,eAAO,MAAM,eAAe,EAAE,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAkChE,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { queryUrl } from '@vultisig/lib-utils/query/queryUrl';
|
|
2
2
|
import { tronRpcUrl } from '../../../chains/tron/config.js';
|
|
3
|
+
import { getTronTxHash } from '../../hash/resolvers/tron.js';
|
|
3
4
|
import { broadcastAccepted, broadcastFailed, isRetryableBroadcastCause } from '../resolver.js';
|
|
4
5
|
import { verifyBroadcastByHash } from '../verifyBroadcastByHash.js';
|
|
5
6
|
export const broadcastTronTx = async ({ chain, tx }) => {
|
|
@@ -19,7 +20,11 @@ export const broadcastTronTx = async ({ chain, tx }) => {
|
|
|
19
20
|
return broadcastFailed(cause, false);
|
|
20
21
|
}
|
|
21
22
|
}
|
|
22
|
-
|
|
23
|
+
const localHash = await getTronTxHash(tx);
|
|
24
|
+
if (!result.txid || result.txid.replace(/^0x/i, '').toLowerCase() !== localHash.toLowerCase()) {
|
|
25
|
+
return broadcastFailed(new Error('Tron broadcast returned a missing or mismatched transaction ID'), false);
|
|
26
|
+
}
|
|
27
|
+
return broadcastAccepted(localHash);
|
|
23
28
|
}
|
|
24
29
|
catch (error) {
|
|
25
30
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tron.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/broadcast/resolvers/tron.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAuB,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAChH,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAEhE,MAAM,CAAC,MAAM,eAAe,GAAyC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE;IAC3F,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAC3B,GAAG,UAAU,8BAA8B,EAC3C;YACE,IAAI,EAAE,EAAE,CAAC,IAAI;SACd,CACF,CAAA;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAC3C,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO;gBACxB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACrD,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,eAAe,CAAC,CAAA;YACpC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAA;YACxD,IAAI,CAAC;gBACH,OAAO,iBAAiB,CAAC,MAAM,qBAAqB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;YAC7E,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YACtC,CAAC;QACH,CAAC;QAED,
|
|
1
|
+
{"version":3,"file":"tron.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/broadcast/resolvers/tron.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAuB,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAChH,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAEhE,MAAM,CAAC,MAAM,eAAe,GAAyC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE;IAC3F,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAC3B,GAAG,UAAU,8BAA8B,EAC3C;YACE,IAAI,EAAE,EAAE,CAAC,IAAI;SACd,CACF,CAAA;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAC3C,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO;gBACxB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACrD,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,eAAe,CAAC,CAAA;YACpC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAA;YACxD,IAAI,CAAC;gBACH,OAAO,iBAAiB,CAAC,MAAM,qBAAqB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;YAC7E,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YACtC,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,EAAE,CAAC,CAAA;QACzC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC;YAC9F,OAAO,eAAe,CAAC,IAAI,KAAK,CAAC,gEAAgE,CAAC,EAAE,KAAK,CAAC,CAAA;QAC5G,CAAC;QAED,OAAO,iBAAiB,CAAC,SAAS,CAAC,CAAA;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC;YACH,OAAO,iBAAiB,CAAC,MAAM,qBAAqB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;QAC7E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,eAAe,CAAC,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAA;QACjE,CAAC;IACH,CAAC;AACH,CAAC,CAAA"}
|
|
@@ -45,7 +45,7 @@ export const verifyBroadcastByHash = async ({ chain, tx, error }) => {
|
|
|
45
45
|
if (result.status === 'success' || isKnownPending) {
|
|
46
46
|
return hash;
|
|
47
47
|
}
|
|
48
|
-
if (result.status === 'error') {
|
|
48
|
+
if (result.status === 'error' || result.status === 'expired') {
|
|
49
49
|
break;
|
|
50
50
|
}
|
|
51
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verifyBroadcastByHash.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/tx/broadcast/verifyBroadcastByHash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AAIjD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAQvC,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAA;AACjD,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAG,CAAA;AAEnD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAmB,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAkB,EAAmB,EAAE;IACpH,IAAI,IAAY,CAAA;IAEhB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,KAAK,CAAA;IACb,CAAC;IAED,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,gCAAgC,EAAE,OAAO,EAAE,EAAE,CAAC;QAC7E,IAAI,MAA2D,CAAA;QAE/D,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,+DAA+D;QACjE,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,CAAA;YAE9E,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,cAAc,EAAE,CAAC;gBAClD,OAAO,IAAI,CAAA;YACb,CAAC;YAED,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"verifyBroadcastByHash.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/tx/broadcast/verifyBroadcastByHash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AAIjD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAQvC,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAA;AACjD,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAG,CAAA;AAEnD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAmB,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAkB,EAAmB,EAAE;IACpH,IAAI,IAAY,CAAA;IAEhB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,KAAK,CAAA;IACb,CAAC;IAED,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,gCAAgC,EAAE,OAAO,EAAE,EAAE,CAAC;QAC7E,IAAI,MAA2D,CAAA;QAE/D,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,+DAA+D;QACjE,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,CAAA;YAE9E,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,cAAc,EAAE,CAAC;gBAClD,OAAO,IAAI,CAAA;YACb,CAAC;YAED,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC7D,MAAK;YACP,CAAC;QACH,CAAC;QAED,IAAI,OAAO,GAAG,gCAAgC,EAAE,CAAC;YAC/C,MAAM,KAAK,CAAC,gCAAgC,GAAG,OAAO,CAAC,CAAA;QACzD,CAAC;IACH,CAAC;IAED,MAAM,KAAK,CAAA;AACb,CAAC,CAAA"}
|
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
import { Resolver } from '@vultisig/lib-utils/types/Resolver';
|
|
2
2
|
import { Chain } from '../../Chain.js';
|
|
3
|
-
type TxStatus = 'pending' | 'success' | 'error' | 'not_found';
|
|
3
|
+
type TxStatus = 'pending' | 'success' | 'error' | 'expired' | 'not_found';
|
|
4
4
|
export type TxReceiptInfo = {
|
|
5
5
|
feeAmount: bigint;
|
|
6
6
|
feeDecimals: number;
|
|
7
7
|
feeTicker: string;
|
|
8
|
+
/** XRPL Payment delivery from validated metadata: XRP drops, issued-currency units, or MPT base units. */
|
|
9
|
+
deliveredAmount?: string;
|
|
10
|
+
/** Identifies a classic issued currency, or `XRP` for a native delivery. */
|
|
11
|
+
deliveredCurrency?: string;
|
|
12
|
+
/** Present only for a classic issued-currency delivery. */
|
|
13
|
+
deliveredIssuer?: string;
|
|
14
|
+
/** Present only for a multi-purpose-token delivery. */
|
|
15
|
+
deliveredMptIssuanceId?: string;
|
|
8
16
|
};
|
|
9
17
|
export type TxStatusResult = {
|
|
10
18
|
status: TxStatus;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/tx/status/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAE7D,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAOnC,KAAK,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/tx/status/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAE7D,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAOnC,KAAK,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,CAAA;AAEzE,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,0GAA0G;IAC1G,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,2DAA2D;IAC3D,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,uDAAuD;IACvD,sBAAsB,CAAC,EAAE,MAAM,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,QAAQ,CAAA;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,aAAa,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,IAAI;IACnD,KAAK,EAAE,CAAC,CAAA;IACR,IAAI,EAAE,MAAM,CAAA;IACZ,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,IAAI,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ripple.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/status/resolvers/ripple.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,UAAU,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"ripple.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/status/resolvers/ripple.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAO9D,OAAO,EAAiB,gBAAgB,EAAE,MAAM,aAAa,CAAA;AA0E7D,eAAO,MAAM,iBAAiB,EAAE,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAoDjE,CAAA"}
|
|
@@ -1,7 +1,67 @@
|
|
|
1
1
|
import { Chain } from '@vultisig/core-chain/Chain';
|
|
2
2
|
import { getRippleClient } from '@vultisig/core-chain/chains/ripple/client';
|
|
3
|
+
import { isValidXrplCurrencyCode } from '@vultisig/core-chain/chains/ripple/issuedCurrency';
|
|
3
4
|
import { chainFeeCoin } from '@vultisig/core-chain/coin/chainFeeCoin';
|
|
4
5
|
import { attempt } from '@vultisig/lib-utils/attempt';
|
|
6
|
+
import { isValidClassicAddress } from 'ripple-address-codec';
|
|
7
|
+
const maxXrpDrops = 100000000000000000n;
|
|
8
|
+
const isValidIssuedCurrencyValue = (value) => {
|
|
9
|
+
const match = /^(\d+)(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/.exec(value);
|
|
10
|
+
if (!match)
|
|
11
|
+
return false;
|
|
12
|
+
const [, integer, fraction = '', exponent = '0'] = match;
|
|
13
|
+
const digits = `${integer}${fraction}`;
|
|
14
|
+
const firstNonZero = digits.search(/[1-9]/);
|
|
15
|
+
if (firstNonZero === -1)
|
|
16
|
+
return true;
|
|
17
|
+
const significantDigits = digits.slice(firstNonZero).replace(/0+$/, '').length;
|
|
18
|
+
const magnitude = BigInt(digits.length - firstNonZero - fraction.length - 1) + BigInt(exponent);
|
|
19
|
+
return significantDigits <= 16 && magnitude >= -81n && magnitude <= 95n;
|
|
20
|
+
};
|
|
21
|
+
const getDeliveredReceipt = (meta) => {
|
|
22
|
+
const deliveredAmount = 'delivered_amount' in meta ? meta.delivered_amount : meta.DeliveredAmount;
|
|
23
|
+
if (typeof deliveredAmount === 'string') {
|
|
24
|
+
return /^\d+$/.test(deliveredAmount) && BigInt(deliveredAmount) <= maxXrpDrops
|
|
25
|
+
? {
|
|
26
|
+
deliveredAmount,
|
|
27
|
+
deliveredCurrency: 'XRP',
|
|
28
|
+
}
|
|
29
|
+
: {};
|
|
30
|
+
}
|
|
31
|
+
if (!deliveredAmount || typeof deliveredAmount !== 'object') {
|
|
32
|
+
return {};
|
|
33
|
+
}
|
|
34
|
+
const { value, currency, issuer, mpt_issuance_id: mptIssuanceId } = deliveredAmount;
|
|
35
|
+
if ('mpt_issuance_id' in deliveredAmount) {
|
|
36
|
+
if (typeof value === 'string' &&
|
|
37
|
+
/^\d{1,19}$/.test(value) &&
|
|
38
|
+
BigInt(value) <= 9223372036854775807n &&
|
|
39
|
+
typeof mptIssuanceId === 'string' &&
|
|
40
|
+
/^[A-F0-9]{48}$/i.test(mptIssuanceId) &&
|
|
41
|
+
currency === undefined &&
|
|
42
|
+
issuer === undefined) {
|
|
43
|
+
return {
|
|
44
|
+
deliveredAmount: value,
|
|
45
|
+
deliveredMptIssuanceId: mptIssuanceId,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
return {};
|
|
49
|
+
}
|
|
50
|
+
if (typeof value !== 'string' ||
|
|
51
|
+
!isValidIssuedCurrencyValue(value) ||
|
|
52
|
+
typeof currency !== 'string' ||
|
|
53
|
+
!isValidXrplCurrencyCode(currency) ||
|
|
54
|
+
['XRP', '0'.repeat(40), '0000000000000000000000005852500000000000'].includes(currency.toUpperCase()) ||
|
|
55
|
+
typeof issuer !== 'string' ||
|
|
56
|
+
!isValidClassicAddress(issuer)) {
|
|
57
|
+
return {};
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
deliveredAmount: value,
|
|
61
|
+
deliveredCurrency: currency,
|
|
62
|
+
deliveredIssuer: issuer,
|
|
63
|
+
};
|
|
64
|
+
};
|
|
5
65
|
export const getRippleTxStatus = async ({ hash }) => {
|
|
6
66
|
const client = await getRippleClient();
|
|
7
67
|
const { data: response, error } = await attempt(client.request({
|
|
@@ -26,11 +86,13 @@ export const getRippleTxStatus = async ({ hash }) => {
|
|
|
26
86
|
const status = success ? 'success' : 'error';
|
|
27
87
|
const feeStr = tx_json?.Fee;
|
|
28
88
|
const feeCoin = chainFeeCoin[Chain.Ripple];
|
|
89
|
+
const deliveredReceipt = success && tx_json?.TransactionType === 'Payment' ? getDeliveredReceipt(meta) : {};
|
|
29
90
|
const receipt = feeStr != null && feeStr !== ''
|
|
30
91
|
? {
|
|
31
92
|
feeAmount: BigInt(feeStr),
|
|
32
93
|
feeDecimals: feeCoin.decimals,
|
|
33
94
|
feeTicker: feeCoin.ticker,
|
|
95
|
+
...deliveredReceipt,
|
|
34
96
|
}
|
|
35
97
|
: undefined;
|
|
36
98
|
return { status, receipt };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ripple.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/status/resolvers/ripple.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAc,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAA;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"ripple.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/status/resolvers/ripple.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tron.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/status/resolvers/tron.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAM9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"tron.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/status/resolvers/tron.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAM9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAgF9C,eAAO,MAAM,eAAe,EAAE,gBAAgB,CAAC,UAAU,CAAC,IAAI,CA8D7D,CAAA"}
|
|
@@ -34,6 +34,22 @@ const TRON_RECEIPT_FAILURE_RESULTS = new Set([
|
|
|
34
34
|
'UNKNOWN',
|
|
35
35
|
'INVALID_CODE',
|
|
36
36
|
]);
|
|
37
|
+
const getUnconfirmedTronStatus = async ({ hash, infoIsKnown }) => {
|
|
38
|
+
const { data: rawTx } = await attempt(queryUrl(`${tronRpcUrl}/wallet/gettransactionbyid`, {
|
|
39
|
+
body: { value: hash },
|
|
40
|
+
}));
|
|
41
|
+
const rawTxMatchesHash = rawTx?.txID?.toLowerCase() === hash.toLowerCase();
|
|
42
|
+
if (!rawTxMatchesHash) {
|
|
43
|
+
return infoIsKnown
|
|
44
|
+
? { status: 'pending', isKnown: true }
|
|
45
|
+
: { status: 'not_found', isKnown: false };
|
|
46
|
+
}
|
|
47
|
+
const expiration = rawTx.raw_data?.expiration;
|
|
48
|
+
if (expiration !== undefined && Date.now() > expiration) {
|
|
49
|
+
return { status: 'expired', isKnown: true };
|
|
50
|
+
}
|
|
51
|
+
return { status: 'pending', isKnown: true };
|
|
52
|
+
};
|
|
37
53
|
export const getTronTxStatus = async ({ hash }) => {
|
|
38
54
|
const url = `${tronRpcUrl}/wallet/gettransactioninfobyid`;
|
|
39
55
|
const { data: tx, error } = await attempt(queryUrl(url, {
|
|
@@ -43,10 +59,10 @@ export const getTronTxStatus = async ({ hash }) => {
|
|
|
43
59
|
return { status: 'pending', isKnown: false };
|
|
44
60
|
}
|
|
45
61
|
if (!tx.id) {
|
|
46
|
-
return {
|
|
62
|
+
return getUnconfirmedTronStatus({ hash, infoIsKnown: false });
|
|
47
63
|
}
|
|
48
64
|
if (tx.blockNumber === undefined || tx.blockNumber === 0) {
|
|
49
|
-
return {
|
|
65
|
+
return getUnconfirmedTronStatus({ hash, infoIsKnown: true });
|
|
50
66
|
}
|
|
51
67
|
// 1. top-level result === "FAILED" → error
|
|
52
68
|
// Tron RPC only emits "FAILED" here — no "SUCCESS" counterpart exists at the top level.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tron.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/status/resolvers/tron.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAc,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAGxD,oGAAoG;AACpG,yFAAyF;AACzF,gGAAgG;AAChG,iFAAiF;AACjF,EAAE;AACF,4FAA4F;AAC5F,8FAA8F;AAC9F,2FAA2F;AAC3F,8FAA8F;AAC9F,0FAA0F;AAC1F,+FAA+F;AAC/F,qFAAqF;AACrF,MAAM,4BAA4B,GAAG,IAAI,GAAG,CAAC;IAC3C,QAAQ;IACR,eAAe;IACf,QAAQ;IACR,aAAa;IACb,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,sBAAsB;IACtB,eAAe;IACf,gBAAgB;IAChB,iBAAiB;IACjB,iBAAiB;IACjB,mBAAmB;IACnB,sBAAsB;IACtB,qBAAqB;IACrB,SAAS;IACT,cAAc;CACf,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"tron.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/status/resolvers/tron.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAc,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAGxD,oGAAoG;AACpG,yFAAyF;AACzF,gGAAgG;AAChG,iFAAiF;AACjF,EAAE;AACF,4FAA4F;AAC5F,8FAA8F;AAC9F,2FAA2F;AAC3F,8FAA8F;AAC9F,0FAA0F;AAC1F,+FAA+F;AAC/F,qFAAqF;AACrF,MAAM,4BAA4B,GAAG,IAAI,GAAG,CAAC;IAC3C,QAAQ;IACR,eAAe;IACf,QAAQ;IACR,aAAa;IACb,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,sBAAsB;IACtB,eAAe;IACf,gBAAgB;IAChB,iBAAiB;IACjB,iBAAiB;IACjB,mBAAmB;IACnB,sBAAsB;IACtB,qBAAqB;IACrB,SAAS;IACT,cAAc;CACf,CAAC,CAAA;AA0BF,MAAM,wBAAwB,GAAG,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAA0C,EAAE,EAAE;IACvG,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CACnC,QAAQ,CAAoB,GAAG,UAAU,4BAA4B,EAAE;QACrE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;KACtB,CAAC,CACH,CAAA;IAED,MAAM,gBAAgB,GAAG,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAA;IAC1E,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,WAAW;YAChB,CAAC,CAAC,EAAE,MAAM,EAAE,SAAkB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC/C,CAAC,CAAC,EAAE,MAAM,EAAE,WAAoB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;IACtD,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAA;IAC7C,IAAI,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC;QACxD,OAAO,EAAE,MAAM,EAAE,SAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IACtD,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,SAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;AACtD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAsC,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACnF,MAAM,GAAG,GAAG,GAAG,UAAU,gCAAgC,CAAA;IAEzD,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CACvC,QAAQ,CAAqB,GAAG,EAAE;QAChC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;KACtB,CAAC,CACH,CAAA;IAED,IAAI,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC;QACjB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;IAC9C,CAAC;IAED,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACX,OAAO,wBAAwB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAA;IAC/D,CAAC;IAED,IAAI,EAAE,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,CAAC,WAAW,KAAK,CAAC,EAAE,CAAC;QACzD,OAAO,wBAAwB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;IAC9D,CAAC;IAED,2CAA2C;IAC3C,2FAA2F;IAC3F,yFAAyF;IACzF,wFAAwF;IACxF,IAAI,EAAE,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;IAC5B,CAAC;IAED,4EAA4E;IAC5E,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC;QAChB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC7C,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACxC,MAAM,OAAO,GACX,EAAE,CAAC,GAAG,IAAI,IAAI;QACZ,CAAC,CAAC;YACE,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;YACzB,WAAW,EAAE,OAAO,CAAC,QAAQ;YAC7B,SAAS,EAAE,OAAO,CAAC,MAAM;SAC1B;QACH,CAAC,CAAC,SAAS,CAAA;IAEf,2FAA2F;IAC3F,iDAAiD;IACjD,4DAA4D;IAC5D,sFAAsF;IACtF,wEAAwE;IACxE,yFAAyF;IACzF,4FAA4F;IAC5F,8FAA8F;IAC9F,sFAAsF;IACtF,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,IAAI,4BAA4B,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACrF,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAA;IACrC,CAAC;IAED,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAA;IACvC,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;AACtD,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vultisig/core-chain",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.1.0",
|
|
4
4
|
"description": "Blockchain chain logic shared across Vultisig clients",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -745,6 +745,11 @@
|
|
|
745
745
|
"import": "./dist/chains/ripple/network/info.js",
|
|
746
746
|
"default": "./dist/chains/ripple/network/info.js"
|
|
747
747
|
},
|
|
748
|
+
"./chains/ripple/trustLine": {
|
|
749
|
+
"types": "./dist/chains/ripple/trustLine.d.ts",
|
|
750
|
+
"import": "./dist/chains/ripple/trustLine.js",
|
|
751
|
+
"default": "./dist/chains/ripple/trustLine.js"
|
|
752
|
+
},
|
|
748
753
|
"./chains/solana/assertSafeSolanaSwapInstructions": {
|
|
749
754
|
"types": "./dist/chains/solana/assertSafeSolanaSwapInstructions.d.ts",
|
|
750
755
|
"import": "./dist/chains/solana/assertSafeSolanaSwapInstructions.js",
|
|
@@ -995,11 +1000,31 @@
|
|
|
995
1000
|
"import": "./dist/chains/ton/api.js",
|
|
996
1001
|
"default": "./dist/chains/ton/api.js"
|
|
997
1002
|
},
|
|
1003
|
+
"./chains/ton/comment": {
|
|
1004
|
+
"types": "./dist/chains/ton/comment.d.ts",
|
|
1005
|
+
"import": "./dist/chains/ton/comment.js",
|
|
1006
|
+
"default": "./dist/chains/ton/comment.js"
|
|
1007
|
+
},
|
|
998
1008
|
"./chains/ton/config": {
|
|
999
1009
|
"types": "./dist/chains/ton/config.d.ts",
|
|
1000
1010
|
"import": "./dist/chains/ton/config.js",
|
|
1001
1011
|
"default": "./dist/chains/ton/config.js"
|
|
1002
1012
|
},
|
|
1013
|
+
"./chains/ton/jetton/symbol": {
|
|
1014
|
+
"types": "./dist/chains/ton/jetton/symbol.d.ts",
|
|
1015
|
+
"import": "./dist/chains/ton/jetton/symbol.js",
|
|
1016
|
+
"default": "./dist/chains/ton/jetton/symbol.js"
|
|
1017
|
+
},
|
|
1018
|
+
"./chains/ton/jetton/verification": {
|
|
1019
|
+
"types": "./dist/chains/ton/jetton/verification.d.ts",
|
|
1020
|
+
"import": "./dist/chains/ton/jetton/verification.js",
|
|
1021
|
+
"default": "./dist/chains/ton/jetton/verification.js"
|
|
1022
|
+
},
|
|
1023
|
+
"./chains/ton/jetton/verifiedRegistry": {
|
|
1024
|
+
"types": "./dist/chains/ton/jetton/verifiedRegistry.d.ts",
|
|
1025
|
+
"import": "./dist/chains/ton/jetton/verifiedRegistry.js",
|
|
1026
|
+
"default": "./dist/chains/ton/jetton/verifiedRegistry.js"
|
|
1027
|
+
},
|
|
1003
1028
|
"./chains/ton/messageBody/decode": {
|
|
1004
1029
|
"types": "./dist/chains/ton/messageBody/decode.d.ts",
|
|
1005
1030
|
"import": "./dist/chains/ton/messageBody/decode.js",
|
|
@@ -1020,6 +1045,11 @@
|
|
|
1020
1045
|
"import": "./dist/chains/ton/messageBody/types.js",
|
|
1021
1046
|
"default": "./dist/chains/ton/messageBody/types.js"
|
|
1022
1047
|
},
|
|
1048
|
+
"./chains/ton/messageBounce": {
|
|
1049
|
+
"types": "./dist/chains/ton/messageBounce.d.ts",
|
|
1050
|
+
"import": "./dist/chains/ton/messageBounce.js",
|
|
1051
|
+
"default": "./dist/chains/ton/messageBounce.js"
|
|
1052
|
+
},
|
|
1023
1053
|
"./chains/ton/staking": {
|
|
1024
1054
|
"types": "./dist/chains/ton/staking.d.ts",
|
|
1025
1055
|
"import": "./dist/chains/ton/staking.js",
|
|
@@ -1285,6 +1315,11 @@
|
|
|
1285
1315
|
"import": "./dist/coin/find/resolvers/solana/index.js",
|
|
1286
1316
|
"default": "./dist/coin/find/resolvers/solana/index.js"
|
|
1287
1317
|
},
|
|
1318
|
+
"./coin/find/resolvers/ton": {
|
|
1319
|
+
"types": "./dist/coin/find/resolvers/ton.d.ts",
|
|
1320
|
+
"import": "./dist/coin/find/resolvers/ton.js",
|
|
1321
|
+
"default": "./dist/coin/find/resolvers/ton.js"
|
|
1322
|
+
},
|
|
1288
1323
|
"./coin/jupiter/token": {
|
|
1289
1324
|
"types": "./dist/coin/jupiter/token.d.ts",
|
|
1290
1325
|
"import": "./dist/coin/jupiter/token.js",
|
|
@@ -1415,6 +1450,11 @@
|
|
|
1415
1450
|
"import": "./dist/coin/token/metadata/resolvers/tron.js",
|
|
1416
1451
|
"default": "./dist/coin/token/metadata/resolvers/tron.js"
|
|
1417
1452
|
},
|
|
1453
|
+
"./coin/tokenVerification": {
|
|
1454
|
+
"types": "./dist/coin/tokenVerification.d.ts",
|
|
1455
|
+
"import": "./dist/coin/tokenVerification.js",
|
|
1456
|
+
"default": "./dist/coin/tokenVerification.js"
|
|
1457
|
+
},
|
|
1418
1458
|
"./coin/utils/findByTicker": {
|
|
1419
1459
|
"types": "./dist/coin/utils/findByTicker.d.ts",
|
|
1420
1460
|
"import": "./dist/coin/utils/findByTicker.js",
|