@atomiqlabs/sdk 8.8.3 → 8.8.4
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/LICENSE +201 -201
- package/README.md +1760 -1760
- package/dist/SmartChainAssets.d.ts +181 -181
- package/dist/SmartChainAssets.js +181 -181
- package/dist/bitcoin/coinselect2/accumulative.d.ts +7 -7
- package/dist/bitcoin/coinselect2/accumulative.js +52 -52
- package/dist/bitcoin/coinselect2/blackjack.d.ts +7 -7
- package/dist/bitcoin/coinselect2/blackjack.js +38 -38
- package/dist/bitcoin/coinselect2/index.d.ts +20 -20
- package/dist/bitcoin/coinselect2/index.js +69 -69
- package/dist/bitcoin/coinselect2/utils.d.ts +82 -82
- package/dist/bitcoin/coinselect2/utils.js +158 -158
- package/dist/bitcoin/wallet/BitcoinWallet.d.ts +113 -113
- package/dist/bitcoin/wallet/BitcoinWallet.js +335 -335
- package/dist/bitcoin/wallet/IBitcoinWallet.d.ts +116 -116
- package/dist/bitcoin/wallet/IBitcoinWallet.js +21 -21
- package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.d.ts +106 -106
- package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.js +196 -196
- package/dist/enums/FeeType.d.ts +15 -15
- package/dist/enums/FeeType.js +19 -19
- package/dist/enums/SwapAmountType.d.ts +15 -15
- package/dist/enums/SwapAmountType.js +19 -19
- package/dist/enums/SwapDirection.d.ts +15 -15
- package/dist/enums/SwapDirection.js +19 -19
- package/dist/enums/SwapSide.d.ts +15 -15
- package/dist/enums/SwapSide.js +19 -19
- package/dist/enums/SwapType.d.ts +75 -75
- package/dist/enums/SwapType.js +79 -79
- package/dist/errors/IntermediaryError.d.ts +13 -13
- package/dist/errors/IntermediaryError.js +27 -27
- package/dist/errors/RequestError.d.ts +32 -32
- package/dist/errors/RequestError.js +54 -54
- package/dist/errors/UserError.d.ts +8 -8
- package/dist/errors/UserError.js +16 -16
- package/dist/events/UnifiedSwapEventListener.d.ts +23 -23
- package/dist/events/UnifiedSwapEventListener.js +132 -132
- package/dist/http/HttpUtils.d.ts +27 -27
- package/dist/http/HttpUtils.js +91 -91
- package/dist/http/paramcoders/IParamReader.d.ts +8 -8
- package/dist/http/paramcoders/IParamReader.js +2 -2
- package/dist/http/paramcoders/ParamDecoder.d.ts +44 -44
- package/dist/http/paramcoders/ParamDecoder.js +137 -137
- package/dist/http/paramcoders/ParamEncoder.d.ts +20 -20
- package/dist/http/paramcoders/ParamEncoder.js +36 -36
- package/dist/http/paramcoders/SchemaVerifier.d.ts +26 -26
- package/dist/http/paramcoders/SchemaVerifier.js +145 -145
- package/dist/http/paramcoders/client/ResponseParamDecoder.d.ts +11 -11
- package/dist/http/paramcoders/client/ResponseParamDecoder.js +57 -57
- package/dist/http/paramcoders/client/StreamParamEncoder.d.ts +13 -13
- package/dist/http/paramcoders/client/StreamParamEncoder.js +26 -26
- package/dist/http/paramcoders/client/StreamingFetchPromise.d.ts +16 -16
- package/dist/http/paramcoders/client/StreamingFetchPromise.js +174 -174
- package/dist/index.d.ts +85 -85
- package/dist/index.js +158 -158
- package/dist/intermediaries/Intermediary.d.ts +178 -178
- package/dist/intermediaries/Intermediary.js +166 -166
- package/dist/intermediaries/IntermediaryDiscovery.d.ts +211 -211
- package/dist/intermediaries/IntermediaryDiscovery.js +424 -424
- package/dist/intermediaries/apis/IntermediaryAPI.d.ts +450 -450
- package/dist/intermediaries/apis/IntermediaryAPI.js +618 -618
- package/dist/intermediaries/apis/TrustedIntermediaryAPI.d.ts +155 -155
- package/dist/intermediaries/apis/TrustedIntermediaryAPI.js +137 -137
- package/dist/lnurl/LNURL.d.ts +102 -102
- package/dist/lnurl/LNURL.js +321 -321
- package/dist/prices/RedundantSwapPrice.d.ts +110 -110
- package/dist/prices/RedundantSwapPrice.js +222 -222
- package/dist/prices/SingleSwapPrice.d.ts +34 -34
- package/dist/prices/SingleSwapPrice.js +44 -44
- package/dist/prices/SwapPriceWithChain.d.ts +107 -107
- package/dist/prices/SwapPriceWithChain.js +128 -128
- package/dist/prices/abstract/ICachedSwapPrice.d.ts +28 -28
- package/dist/prices/abstract/ICachedSwapPrice.js +62 -62
- package/dist/prices/abstract/IPriceProvider.d.ts +81 -81
- package/dist/prices/abstract/IPriceProvider.js +74 -74
- package/dist/prices/abstract/ISwapPrice.d.ts +168 -168
- package/dist/prices/abstract/ISwapPrice.js +279 -279
- package/dist/prices/providers/BinancePriceProvider.d.ts +23 -23
- package/dist/prices/providers/BinancePriceProvider.js +30 -30
- package/dist/prices/providers/CoinGeckoPriceProvider.d.ts +23 -23
- package/dist/prices/providers/CoinGeckoPriceProvider.js +29 -29
- package/dist/prices/providers/CoinPaprikaPriceProvider.d.ts +25 -25
- package/dist/prices/providers/CoinPaprikaPriceProvider.js +29 -29
- package/dist/prices/providers/CustomPriceProvider.d.ts +24 -24
- package/dist/prices/providers/CustomPriceProvider.js +35 -35
- package/dist/prices/providers/KrakenPriceProvider.d.ts +38 -38
- package/dist/prices/providers/KrakenPriceProvider.js +45 -45
- package/dist/prices/providers/OKXPriceProvider.d.ts +34 -34
- package/dist/prices/providers/OKXPriceProvider.js +29 -29
- package/dist/prices/providers/abstract/ExchangePriceProvider.d.ts +17 -17
- package/dist/prices/providers/abstract/ExchangePriceProvider.js +21 -21
- package/dist/prices/providers/abstract/HttpPriceProvider.d.ts +7 -7
- package/dist/prices/providers/abstract/HttpPriceProvider.js +12 -12
- package/dist/storage/IUnifiedStorage.d.ts +85 -85
- package/dist/storage/IUnifiedStorage.js +2 -2
- package/dist/storage/UnifiedSwapStorage.d.ts +114 -114
- package/dist/storage/UnifiedSwapStorage.js +116 -116
- package/dist/storage-browser/IndexedDBUnifiedStorage.d.ts +63 -63
- package/dist/storage-browser/IndexedDBUnifiedStorage.js +298 -298
- package/dist/storage-browser/LocalStorageManager.d.ts +49 -49
- package/dist/storage-browser/LocalStorageManager.js +93 -93
- package/dist/swapper/Swapper.d.ts +732 -732
- package/dist/swapper/Swapper.js +1713 -1713
- package/dist/swapper/SwapperFactory.d.ts +135 -135
- package/dist/swapper/SwapperFactory.js +162 -162
- package/dist/swapper/SwapperUtils.d.ts +206 -206
- package/dist/swapper/SwapperUtils.js +481 -481
- package/dist/swapper/SwapperWithChain.d.ts +404 -404
- package/dist/swapper/SwapperWithChain.js +469 -469
- package/dist/swapper/SwapperWithSigner.d.ts +322 -322
- package/dist/swapper/SwapperWithSigner.js +318 -318
- package/dist/swaps/IAddressSwap.d.ts +22 -22
- package/dist/swaps/IAddressSwap.js +14 -14
- package/dist/swaps/IBTCWalletSwap.d.ts +73 -73
- package/dist/swaps/IBTCWalletSwap.js +18 -18
- package/dist/swaps/IClaimableSwap.d.ts +49 -49
- package/dist/swaps/IClaimableSwap.js +15 -15
- package/dist/swaps/IClaimableSwapWrapper.d.ts +15 -15
- package/dist/swaps/IClaimableSwapWrapper.js +2 -2
- package/dist/swaps/IRefundableSwap.d.ts +43 -43
- package/dist/swaps/IRefundableSwap.js +14 -14
- package/dist/swaps/ISwap.d.ts +392 -392
- package/dist/swaps/ISwap.js +349 -349
- package/dist/swaps/ISwapWithGasDrop.d.ts +21 -21
- package/dist/swaps/ISwapWithGasDrop.js +12 -12
- package/dist/swaps/ISwapWrapper.d.ts +285 -285
- package/dist/swaps/ISwapWrapper.js +353 -353
- package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.d.ts +98 -98
- package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.js +126 -126
- package/dist/swaps/escrow_swaps/IEscrowSwap.d.ts +139 -139
- package/dist/swaps/escrow_swaps/IEscrowSwap.js +170 -170
- package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.d.ts +128 -128
- package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.js +167 -167
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.d.ts +105 -105
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.js +129 -129
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.d.ts +162 -162
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.js +190 -190
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.d.ts +64 -64
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.js +82 -82
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.d.ts +531 -531
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.js +1285 -1285
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.d.ts +190 -190
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.js +432 -432
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.d.ts +583 -583
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.js +1371 -1371
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.d.ts +235 -235
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.js +525 -525
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.d.ts +458 -458
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.js +1126 -1126
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.d.ts +202 -202
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.js +406 -406
- package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.d.ts +403 -403
- package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.js +924 -924
- package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.d.ts +68 -68
- package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.js +117 -117
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.d.ts +127 -127
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.js +256 -256
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.d.ts +251 -251
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.js +536 -536
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.d.ts +73 -73
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.js +155 -155
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.d.ts +132 -132
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.js +286 -286
- package/dist/swaps/spv_swaps/SpvFromBTCSwap.d.ts +637 -637
- package/dist/swaps/spv_swaps/SpvFromBTCSwap.js +1448 -1448
- package/dist/swaps/spv_swaps/SpvFromBTCWrapper.d.ts +257 -257
- package/dist/swaps/spv_swaps/SpvFromBTCWrapper.js +947 -947
- package/dist/swaps/trusted/ln/LnForGasSwap.d.ts +261 -261
- package/dist/swaps/trusted/ln/LnForGasSwap.js +511 -511
- package/dist/swaps/trusted/ln/LnForGasWrapper.d.ts +40 -40
- package/dist/swaps/trusted/ln/LnForGasWrapper.js +83 -83
- package/dist/swaps/trusted/onchain/OnchainForGasSwap.d.ts +342 -342
- package/dist/swaps/trusted/onchain/OnchainForGasSwap.js +715 -715
- package/dist/swaps/trusted/onchain/OnchainForGasWrapper.d.ts +69 -69
- package/dist/swaps/trusted/onchain/OnchainForGasWrapper.js +93 -93
- package/dist/types/AmountData.d.ts +10 -10
- package/dist/types/AmountData.js +2 -2
- package/dist/types/CustomPriceFunction.d.ts +11 -11
- package/dist/types/CustomPriceFunction.js +2 -2
- package/dist/types/PriceInfoType.d.ts +28 -28
- package/dist/types/PriceInfoType.js +57 -57
- package/dist/types/SwapExecutionAction.d.ts +88 -88
- package/dist/types/SwapExecutionAction.js +2 -2
- package/dist/types/SwapStateInfo.d.ts +5 -5
- package/dist/types/SwapStateInfo.js +2 -2
- package/dist/types/SwapWithSigner.d.ts +17 -17
- package/dist/types/SwapWithSigner.js +43 -43
- package/dist/types/Token.d.ts +99 -99
- package/dist/types/Token.js +76 -76
- package/dist/types/TokenAmount.d.ts +69 -69
- package/dist/types/TokenAmount.js +60 -60
- package/dist/types/fees/Fee.d.ts +50 -50
- package/dist/types/fees/Fee.js +2 -2
- package/dist/types/fees/FeeBreakdown.d.ts +11 -11
- package/dist/types/fees/FeeBreakdown.js +2 -2
- package/dist/types/fees/PercentagePPM.d.ts +17 -17
- package/dist/types/fees/PercentagePPM.js +18 -18
- package/dist/types/lnurl/LNURLPay.d.ts +61 -61
- package/dist/types/lnurl/LNURLPay.js +31 -31
- package/dist/types/lnurl/LNURLWithdraw.d.ts +48 -48
- package/dist/types/lnurl/LNURLWithdraw.js +27 -27
- package/dist/types/wallets/LightningInvoiceCreateService.d.ts +24 -24
- package/dist/types/wallets/LightningInvoiceCreateService.js +15 -15
- package/dist/types/wallets/MinimalBitcoinWalletInterface.d.ts +23 -23
- package/dist/types/wallets/MinimalBitcoinWalletInterface.js +2 -2
- package/dist/types/wallets/MinimalLightningNetworkWalletInterface.d.ts +9 -9
- package/dist/types/wallets/MinimalLightningNetworkWalletInterface.js +2 -2
- package/dist/utils/AutomaticClockDriftCorrection.d.ts +1 -1
- package/dist/utils/AutomaticClockDriftCorrection.js +70 -70
- package/dist/utils/BitcoinUtils.d.ts +16 -16
- package/dist/utils/BitcoinUtils.js +141 -141
- package/dist/utils/BitcoinWalletUtils.d.ts +7 -7
- package/dist/utils/BitcoinWalletUtils.js +14 -14
- package/dist/utils/Logger.d.ts +7 -7
- package/dist/utils/Logger.js +12 -12
- package/dist/utils/RetryUtils.d.ts +22 -22
- package/dist/utils/RetryUtils.js +67 -67
- package/dist/utils/SwapUtils.d.ts +88 -88
- package/dist/utils/SwapUtils.js +72 -72
- package/dist/utils/TimeoutUtils.d.ts +17 -17
- package/dist/utils/TimeoutUtils.js +55 -55
- package/dist/utils/TokenUtils.d.ts +19 -19
- package/dist/utils/TokenUtils.js +37 -37
- package/dist/utils/TypeUtils.d.ts +7 -7
- package/dist/utils/TypeUtils.js +2 -2
- package/dist/utils/Utils.d.ts +67 -67
- package/dist/utils/Utils.js +208 -208
- package/package.json +43 -43
- package/src/SmartChainAssets.ts +186 -186
- package/src/bitcoin/coinselect2/accumulative.ts +69 -69
- package/src/bitcoin/coinselect2/blackjack.ts +50 -50
- package/src/bitcoin/coinselect2/index.ts +93 -93
- package/src/bitcoin/coinselect2/utils.ts +236 -236
- package/src/bitcoin/wallet/BitcoinWallet.ts +439 -439
- package/src/bitcoin/wallet/IBitcoinWallet.ts +140 -140
- package/src/bitcoin/wallet/SingleAddressBitcoinWallet.ts +225 -225
- package/src/enums/FeeType.ts +15 -15
- package/src/enums/SwapAmountType.ts +16 -16
- package/src/enums/SwapDirection.ts +15 -15
- package/src/enums/SwapSide.ts +16 -16
- package/src/enums/SwapType.ts +75 -75
- package/src/errors/IntermediaryError.ts +28 -28
- package/src/errors/RequestError.ts +64 -64
- package/src/errors/UserError.ts +15 -15
- package/src/events/UnifiedSwapEventListener.ts +173 -173
- package/src/http/HttpUtils.ts +91 -91
- package/src/http/paramcoders/IParamReader.ts +9 -9
- package/src/http/paramcoders/ParamDecoder.ts +145 -145
- package/src/http/paramcoders/ParamEncoder.ts +40 -40
- package/src/http/paramcoders/SchemaVerifier.ts +153 -153
- package/src/http/paramcoders/client/ResponseParamDecoder.ts +57 -57
- package/src/http/paramcoders/client/StreamParamEncoder.ts +28 -28
- package/src/http/paramcoders/client/StreamingFetchPromise.ts +192 -192
- package/src/index.ts +140 -140
- package/src/intermediaries/Intermediary.ts +280 -280
- package/src/intermediaries/IntermediaryDiscovery.ts +541 -541
- package/src/intermediaries/apis/IntermediaryAPI.ts +963 -963
- package/src/intermediaries/apis/TrustedIntermediaryAPI.ts +257 -257
- package/src/lnurl/LNURL.ts +402 -402
- package/src/prices/RedundantSwapPrice.ts +264 -264
- package/src/prices/SingleSwapPrice.ts +50 -50
- package/src/prices/SwapPriceWithChain.ts +194 -194
- package/src/prices/abstract/ICachedSwapPrice.ts +85 -85
- package/src/prices/abstract/IPriceProvider.ts +127 -127
- package/src/prices/abstract/ISwapPrice.ts +390 -390
- package/src/prices/providers/BinancePriceProvider.ts +48 -48
- package/src/prices/providers/CoinGeckoPriceProvider.ts +46 -46
- package/src/prices/providers/CoinPaprikaPriceProvider.ts +49 -49
- package/src/prices/providers/CustomPriceProvider.ts +40 -40
- package/src/prices/providers/KrakenPriceProvider.ts +83 -83
- package/src/prices/providers/OKXPriceProvider.ts +59 -59
- package/src/prices/providers/abstract/ExchangePriceProvider.ts +31 -31
- package/src/prices/providers/abstract/HttpPriceProvider.ts +14 -14
- package/src/storage/IUnifiedStorage.ts +95 -95
- package/src/storage/UnifiedSwapStorage.ts +141 -141
- package/src/storage-browser/IndexedDBUnifiedStorage.ts +350 -350
- package/src/storage-browser/LocalStorageManager.ts +106 -106
- package/src/swapper/Swapper.ts +2488 -2488
- package/src/swapper/SwapperFactory.ts +307 -307
- package/src/swapper/SwapperUtils.ts +570 -570
- package/src/swapper/SwapperWithChain.ts +707 -707
- package/src/swapper/SwapperWithSigner.ts +511 -511
- package/src/swaps/IAddressSwap.ts +30 -30
- package/src/swaps/IBTCWalletSwap.ts +92 -92
- package/src/swaps/IClaimableSwap.ts +65 -65
- package/src/swaps/IClaimableSwapWrapper.ts +17 -17
- package/src/swaps/IRefundableSwap.ts +58 -58
- package/src/swaps/ISwap.ts +703 -703
- package/src/swaps/ISwapWithGasDrop.ts +25 -25
- package/src/swaps/ISwapWrapper.ts +539 -539
- package/src/swaps/escrow_swaps/IEscrowSelfInitSwap.ts +217 -217
- package/src/swaps/escrow_swaps/IEscrowSwap.ts +269 -269
- package/src/swaps/escrow_swaps/IEscrowSwapWrapper.ts +282 -282
- package/src/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.ts +169 -169
- package/src/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.ts +300 -300
- package/src/swaps/escrow_swaps/frombtc/IFromBTCWrapper.ts +107 -107
- package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.ts +1473 -1474
- package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.ts +601 -601
- package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.ts +1582 -1582
- package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.ts +750 -750
- package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.ts +1299 -1299
- package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.ts +610 -610
- package/src/swaps/escrow_swaps/tobtc/IToBTCSwap.ts +1096 -1096
- package/src/swaps/escrow_swaps/tobtc/IToBTCWrapper.ts +138 -138
- package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.ts +304 -304
- package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.ts +786 -786
- package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.ts +206 -206
- package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.ts +401 -401
- package/src/swaps/spv_swaps/SpvFromBTCSwap.ts +1812 -1812
- package/src/swaps/spv_swaps/SpvFromBTCWrapper.ts +1236 -1236
- package/src/swaps/trusted/ln/LnForGasSwap.ts +589 -589
- package/src/swaps/trusted/ln/LnForGasWrapper.ts +91 -91
- package/src/swaps/trusted/onchain/OnchainForGasSwap.ts +862 -862
- package/src/swaps/trusted/onchain/OnchainForGasWrapper.ts +131 -131
- package/src/types/AmountData.ts +9 -9
- package/src/types/CustomPriceFunction.ts +11 -11
- package/src/types/PriceInfoType.ts +66 -66
- package/src/types/SwapExecutionAction.ts +99 -99
- package/src/types/SwapStateInfo.ts +6 -6
- package/src/types/SwapWithSigner.ts +61 -61
- package/src/types/Token.ts +163 -163
- package/src/types/TokenAmount.ts +132 -132
- package/src/types/fees/Fee.ts +56 -56
- package/src/types/fees/FeeBreakdown.ts +11 -11
- package/src/types/fees/PercentagePPM.ts +26 -26
- package/src/types/lnurl/LNURLPay.ts +79 -79
- package/src/types/lnurl/LNURLWithdraw.ts +61 -61
- package/src/types/wallets/LightningInvoiceCreateService.ts +30 -30
- package/src/types/wallets/MinimalBitcoinWalletInterface.ts +21 -21
- package/src/types/wallets/MinimalLightningNetworkWalletInterface.ts +9 -9
- package/src/utils/AutomaticClockDriftCorrection.ts +71 -71
- package/src/utils/BitcoinUtils.ts +132 -132
- package/src/utils/BitcoinWalletUtils.ts +15 -15
- package/src/utils/Logger.ts +14 -14
- package/src/utils/RetryUtils.ts +78 -78
- package/src/utils/SwapUtils.ts +99 -99
- package/src/utils/TimeoutUtils.ts +49 -49
- package/src/utils/TokenUtils.ts +33 -33
- package/src/utils/TypeUtils.ts +8 -8
- package/src/utils/Utils.ts +212 -212
|
@@ -1,61 +1,61 @@
|
|
|
1
|
-
import {ISwap} from "../swaps/ISwap";
|
|
2
|
-
import {ChainType} from "@atomiqlabs/base";
|
|
3
|
-
import {IToBTCSwap} from "../swaps/escrow_swaps/tobtc/IToBTCSwap";
|
|
4
|
-
import {IFromBTCSelfInitSwap} from "../swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap";
|
|
5
|
-
import {FromBTCLNSwap} from "../swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap";
|
|
6
|
-
import {FromBTCLNAutoSwap} from "../swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap";
|
|
7
|
-
import {SpvFromBTCSwap} from "../swaps/spv_swaps/SpvFromBTCSwap";
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Proxy type that auto-injects a smart chain signer into swap methods
|
|
11
|
-
*
|
|
12
|
-
* @category Swaps/Base
|
|
13
|
-
*/
|
|
14
|
-
export type SwapWithSigner<T extends ISwap> = {
|
|
15
|
-
[K in keyof T]:
|
|
16
|
-
K extends "commit" ? (abortSignal?: AbortSignal, skipChecks?: boolean) => Promise<string> :
|
|
17
|
-
K extends "refund" ? (abortSignal?: AbortSignal) => Promise<string> :
|
|
18
|
-
K extends "claim" ? (abortSignal?: AbortSignal) => Promise<string> :
|
|
19
|
-
K extends "commitAndClaim" ? (abortSignal?: AbortSignal, skipChecks?: boolean) => Promise<string> :
|
|
20
|
-
T[K];
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Wraps a swap with automatic signer injection for methods like commit, refund, and claim
|
|
25
|
-
*
|
|
26
|
-
* @category Swaps
|
|
27
|
-
* @internal
|
|
28
|
-
*/
|
|
29
|
-
export function wrapSwapWithSigner<C extends ChainType, T extends ISwap<C>>(swap: T, signer: C["Signer"]): SwapWithSigner<T> {
|
|
30
|
-
return new Proxy(swap, {
|
|
31
|
-
get: (target, prop, receiver) => {
|
|
32
|
-
if (prop === "commit") {
|
|
33
|
-
if(swap instanceof IToBTCSwap || swap instanceof IFromBTCSelfInitSwap) {
|
|
34
|
-
return (abortSignal?: AbortSignal, skipChecks?: boolean) =>
|
|
35
|
-
swap.commit(signer, abortSignal, skipChecks);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
if (prop === "refund") {
|
|
39
|
-
if(swap instanceof IToBTCSwap) {
|
|
40
|
-
return (abortSignal?: AbortSignal) =>
|
|
41
|
-
swap.refund(signer, abortSignal);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
if (prop === "claim") {
|
|
45
|
-
if(swap instanceof IFromBTCSelfInitSwap || swap instanceof FromBTCLNAutoSwap || swap instanceof SpvFromBTCSwap) {
|
|
46
|
-
return (abortSignal?: AbortSignal) =>
|
|
47
|
-
swap.claim(signer, abortSignal);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
if (prop === "commitAndClaim") {
|
|
51
|
-
if(swap instanceof FromBTCLNSwap) {
|
|
52
|
-
return (abortSignal?: AbortSignal, skipChecks?: boolean) =>
|
|
53
|
-
swap.commitAndClaim(signer, abortSignal, skipChecks);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
// Delegate other properties and methods to the original instance
|
|
58
|
-
return Reflect.get(target, prop, receiver);
|
|
59
|
-
}
|
|
60
|
-
}) as SwapWithSigner<T>;
|
|
61
|
-
}
|
|
1
|
+
import {ISwap} from "../swaps/ISwap";
|
|
2
|
+
import {ChainType} from "@atomiqlabs/base";
|
|
3
|
+
import {IToBTCSwap} from "../swaps/escrow_swaps/tobtc/IToBTCSwap";
|
|
4
|
+
import {IFromBTCSelfInitSwap} from "../swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap";
|
|
5
|
+
import {FromBTCLNSwap} from "../swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap";
|
|
6
|
+
import {FromBTCLNAutoSwap} from "../swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap";
|
|
7
|
+
import {SpvFromBTCSwap} from "../swaps/spv_swaps/SpvFromBTCSwap";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Proxy type that auto-injects a smart chain signer into swap methods
|
|
11
|
+
*
|
|
12
|
+
* @category Swaps/Base
|
|
13
|
+
*/
|
|
14
|
+
export type SwapWithSigner<T extends ISwap> = {
|
|
15
|
+
[K in keyof T]:
|
|
16
|
+
K extends "commit" ? (abortSignal?: AbortSignal, skipChecks?: boolean) => Promise<string> :
|
|
17
|
+
K extends "refund" ? (abortSignal?: AbortSignal) => Promise<string> :
|
|
18
|
+
K extends "claim" ? (abortSignal?: AbortSignal) => Promise<string> :
|
|
19
|
+
K extends "commitAndClaim" ? (abortSignal?: AbortSignal, skipChecks?: boolean) => Promise<string> :
|
|
20
|
+
T[K];
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Wraps a swap with automatic signer injection for methods like commit, refund, and claim
|
|
25
|
+
*
|
|
26
|
+
* @category Swaps
|
|
27
|
+
* @internal
|
|
28
|
+
*/
|
|
29
|
+
export function wrapSwapWithSigner<C extends ChainType, T extends ISwap<C>>(swap: T, signer: C["Signer"]): SwapWithSigner<T> {
|
|
30
|
+
return new Proxy(swap, {
|
|
31
|
+
get: (target, prop, receiver) => {
|
|
32
|
+
if (prop === "commit") {
|
|
33
|
+
if(swap instanceof IToBTCSwap || swap instanceof IFromBTCSelfInitSwap) {
|
|
34
|
+
return (abortSignal?: AbortSignal, skipChecks?: boolean) =>
|
|
35
|
+
swap.commit(signer, abortSignal, skipChecks);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
if (prop === "refund") {
|
|
39
|
+
if(swap instanceof IToBTCSwap) {
|
|
40
|
+
return (abortSignal?: AbortSignal) =>
|
|
41
|
+
swap.refund(signer, abortSignal);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (prop === "claim") {
|
|
45
|
+
if(swap instanceof IFromBTCSelfInitSwap || swap instanceof FromBTCLNAutoSwap || swap instanceof SpvFromBTCSwap) {
|
|
46
|
+
return (abortSignal?: AbortSignal) =>
|
|
47
|
+
swap.claim(signer, abortSignal);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
if (prop === "commitAndClaim") {
|
|
51
|
+
if(swap instanceof FromBTCLNSwap) {
|
|
52
|
+
return (abortSignal?: AbortSignal, skipChecks?: boolean) =>
|
|
53
|
+
swap.commitAndClaim(signer, abortSignal, skipChecks);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// Delegate other properties and methods to the original instance
|
|
58
|
+
return Reflect.get(target, prop, receiver);
|
|
59
|
+
}
|
|
60
|
+
}) as SwapWithSigner<T>;
|
|
61
|
+
}
|
package/src/types/Token.ts
CHANGED
|
@@ -1,163 +1,163 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Type for all token types (BTC or smart chain)
|
|
3
|
-
*
|
|
4
|
-
* @category Tokens
|
|
5
|
-
*/
|
|
6
|
-
export type Token<ChainIdentifier extends string = string> = {
|
|
7
|
-
/**
|
|
8
|
-
* Chain identifier for the token's chain
|
|
9
|
-
*/
|
|
10
|
-
chainId: ChainIdentifier | "BITCOIN" | "LIGHTNING",
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Ticker of the token
|
|
14
|
-
*/
|
|
15
|
-
ticker: string,
|
|
16
|
-
/**
|
|
17
|
-
* Full name of the token
|
|
18
|
-
*/
|
|
19
|
-
name: string,
|
|
20
|
-
/**
|
|
21
|
-
* Actual decimal places of the tokens
|
|
22
|
-
*/
|
|
23
|
-
decimals: number,
|
|
24
|
-
/**
|
|
25
|
-
* The decimal places that should be rendered and displayed to the user
|
|
26
|
-
*/
|
|
27
|
-
displayDecimals?: number,
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Address of the token contract, or `""` for Bitcoin
|
|
31
|
-
*/
|
|
32
|
-
address: string,
|
|
33
|
-
|
|
34
|
-
// legacy compatibility
|
|
35
|
-
/**
|
|
36
|
-
* Legacy chain identifier distinguishing between Smart Chain and Bitcoin tokens
|
|
37
|
-
*/
|
|
38
|
-
chain: "SC" | "BTC",
|
|
39
|
-
/**
|
|
40
|
-
* Legacy lightning flag, determines whether a Bitcoin token is an Lightning or on-chain one
|
|
41
|
-
*/
|
|
42
|
-
lightning?: boolean,
|
|
43
|
-
|
|
44
|
-
// helpers
|
|
45
|
-
/**
|
|
46
|
-
* Equality check between tokens
|
|
47
|
-
*/
|
|
48
|
-
equals: (other: Token) => boolean,
|
|
49
|
-
/**
|
|
50
|
-
* Returns the
|
|
51
|
-
*/
|
|
52
|
-
toString: () => string
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Type guard for a {@link Token} type, encompassing all tokens (BTC or smart chain)
|
|
57
|
-
*
|
|
58
|
-
* @category Tokens
|
|
59
|
-
*/
|
|
60
|
-
export function isToken(obj: any): obj is Token {
|
|
61
|
-
return typeof (obj) === "object" &&
|
|
62
|
-
(obj.chain === "SC" || obj.chain === "BTC") &&
|
|
63
|
-
typeof (obj.ticker) === "string" &&
|
|
64
|
-
typeof (obj.decimals) === "number" &&
|
|
65
|
-
typeof (obj.name) === "string";
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Bitcoin token type (BTC on on-chain or lightning)
|
|
70
|
-
*
|
|
71
|
-
* @category Tokens
|
|
72
|
-
*/
|
|
73
|
-
export type BtcToken<L = boolean> = Token & {
|
|
74
|
-
chainId: L extends true ? "LIGHTNING" : "BITCOIN",
|
|
75
|
-
ticker: "BTC",
|
|
76
|
-
name: L extends true ? "Bitcoin (lightning L2)" : "Bitcoin (on-chain L1)",
|
|
77
|
-
decimals: 8,
|
|
78
|
-
displayDecimals: 8,
|
|
79
|
-
|
|
80
|
-
address: "",
|
|
81
|
-
|
|
82
|
-
// legacy compatibility
|
|
83
|
-
chain: "BTC",
|
|
84
|
-
lightning: L,
|
|
85
|
-
|
|
86
|
-
toString: () => L extends true ? "BTC-LN" : "BTC"
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Type guard for {@link BtcToken} (token on the bitcoin network - lightning or on-chain)
|
|
91
|
-
*
|
|
92
|
-
* @category Tokens
|
|
93
|
-
*/
|
|
94
|
-
export function isBtcToken(obj: any): obj is BtcToken {
|
|
95
|
-
return typeof (obj) === "object" &&
|
|
96
|
-
obj.chain === "BTC" &&
|
|
97
|
-
typeof (obj.lightning) === "boolean" &&
|
|
98
|
-
typeof (obj.ticker) === "string" &&
|
|
99
|
-
typeof (obj.decimals) === "number" &&
|
|
100
|
-
typeof (obj.name) === "string";
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* Predefined Bitcoin token constants
|
|
105
|
-
*
|
|
106
|
-
* @category Tokens
|
|
107
|
-
*/
|
|
108
|
-
export const BitcoinTokens: {
|
|
109
|
-
BTC: BtcToken<false>,
|
|
110
|
-
BTCLN: BtcToken<true>
|
|
111
|
-
} = {
|
|
112
|
-
BTC: {
|
|
113
|
-
chain: "BTC",
|
|
114
|
-
chainId: "BITCOIN",
|
|
115
|
-
lightning: false,
|
|
116
|
-
ticker: "BTC",
|
|
117
|
-
decimals: 8,
|
|
118
|
-
displayDecimals: 8,
|
|
119
|
-
name: "Bitcoin (on-chain L1)",
|
|
120
|
-
address: "",
|
|
121
|
-
equals: (other: Token) => other.chainId==="BITCOIN" && other.ticker==="BTC",
|
|
122
|
-
toString: () => "BTC"
|
|
123
|
-
},
|
|
124
|
-
BTCLN: {
|
|
125
|
-
chain: "BTC",
|
|
126
|
-
chainId: "LIGHTNING",
|
|
127
|
-
lightning: true,
|
|
128
|
-
ticker: "BTC",
|
|
129
|
-
decimals: 8,
|
|
130
|
-
displayDecimals: 8,
|
|
131
|
-
name: "Bitcoin (lightning L2)",
|
|
132
|
-
address: "",
|
|
133
|
-
equals: (other: Token) => other.chainId==="LIGHTNING" && other.ticker==="BTC",
|
|
134
|
-
toString: () => "BTC-LN"
|
|
135
|
-
}
|
|
136
|
-
};
|
|
137
|
-
|
|
138
|
-
/**
|
|
139
|
-
* Token on the smart chain
|
|
140
|
-
*
|
|
141
|
-
* @category Tokens
|
|
142
|
-
*/
|
|
143
|
-
export type SCToken<ChainIdentifier extends string = string> = Token<ChainIdentifier> & {
|
|
144
|
-
chainId: ChainIdentifier,
|
|
145
|
-
chain: "SC"
|
|
146
|
-
|
|
147
|
-
toString: () => `${ChainIdentifier}-${string}`
|
|
148
|
-
};
|
|
149
|
-
|
|
150
|
-
/**
|
|
151
|
-
* Type guard for {@link SCToken} (token on the smart chain)
|
|
152
|
-
* @category Tokens
|
|
153
|
-
*/
|
|
154
|
-
export function isSCToken<ChainIdentifier extends string = string>(obj: any, chainIdentifier?: ChainIdentifier[]): obj is SCToken<ChainIdentifier> {
|
|
155
|
-
return typeof (obj) === "object" &&
|
|
156
|
-
obj.chain === "SC" &&
|
|
157
|
-
typeof (obj.chainId) === "string" &&
|
|
158
|
-
(chainIdentifier==null || chainIdentifier.includes(obj.chainId)) &&
|
|
159
|
-
typeof (obj.address) === "string" &&
|
|
160
|
-
typeof (obj.ticker) === "string" &&
|
|
161
|
-
typeof (obj.decimals) === "number" &&
|
|
162
|
-
typeof (obj.name) === "string";
|
|
163
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Type for all token types (BTC or smart chain)
|
|
3
|
+
*
|
|
4
|
+
* @category Tokens
|
|
5
|
+
*/
|
|
6
|
+
export type Token<ChainIdentifier extends string = string> = {
|
|
7
|
+
/**
|
|
8
|
+
* Chain identifier for the token's chain
|
|
9
|
+
*/
|
|
10
|
+
chainId: ChainIdentifier | "BITCOIN" | "LIGHTNING",
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Ticker of the token
|
|
14
|
+
*/
|
|
15
|
+
ticker: string,
|
|
16
|
+
/**
|
|
17
|
+
* Full name of the token
|
|
18
|
+
*/
|
|
19
|
+
name: string,
|
|
20
|
+
/**
|
|
21
|
+
* Actual decimal places of the tokens
|
|
22
|
+
*/
|
|
23
|
+
decimals: number,
|
|
24
|
+
/**
|
|
25
|
+
* The decimal places that should be rendered and displayed to the user
|
|
26
|
+
*/
|
|
27
|
+
displayDecimals?: number,
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Address of the token contract, or `""` for Bitcoin
|
|
31
|
+
*/
|
|
32
|
+
address: string,
|
|
33
|
+
|
|
34
|
+
// legacy compatibility
|
|
35
|
+
/**
|
|
36
|
+
* Legacy chain identifier distinguishing between Smart Chain and Bitcoin tokens
|
|
37
|
+
*/
|
|
38
|
+
chain: "SC" | "BTC",
|
|
39
|
+
/**
|
|
40
|
+
* Legacy lightning flag, determines whether a Bitcoin token is an Lightning or on-chain one
|
|
41
|
+
*/
|
|
42
|
+
lightning?: boolean,
|
|
43
|
+
|
|
44
|
+
// helpers
|
|
45
|
+
/**
|
|
46
|
+
* Equality check between tokens
|
|
47
|
+
*/
|
|
48
|
+
equals: (other: Token) => boolean,
|
|
49
|
+
/**
|
|
50
|
+
* Returns the
|
|
51
|
+
*/
|
|
52
|
+
toString: () => string
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Type guard for a {@link Token} type, encompassing all tokens (BTC or smart chain)
|
|
57
|
+
*
|
|
58
|
+
* @category Tokens
|
|
59
|
+
*/
|
|
60
|
+
export function isToken(obj: any): obj is Token {
|
|
61
|
+
return typeof (obj) === "object" &&
|
|
62
|
+
(obj.chain === "SC" || obj.chain === "BTC") &&
|
|
63
|
+
typeof (obj.ticker) === "string" &&
|
|
64
|
+
typeof (obj.decimals) === "number" &&
|
|
65
|
+
typeof (obj.name) === "string";
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Bitcoin token type (BTC on on-chain or lightning)
|
|
70
|
+
*
|
|
71
|
+
* @category Tokens
|
|
72
|
+
*/
|
|
73
|
+
export type BtcToken<L = boolean> = Token & {
|
|
74
|
+
chainId: L extends true ? "LIGHTNING" : "BITCOIN",
|
|
75
|
+
ticker: "BTC",
|
|
76
|
+
name: L extends true ? "Bitcoin (lightning L2)" : "Bitcoin (on-chain L1)",
|
|
77
|
+
decimals: 8,
|
|
78
|
+
displayDecimals: 8,
|
|
79
|
+
|
|
80
|
+
address: "",
|
|
81
|
+
|
|
82
|
+
// legacy compatibility
|
|
83
|
+
chain: "BTC",
|
|
84
|
+
lightning: L,
|
|
85
|
+
|
|
86
|
+
toString: () => L extends true ? "BTC-LN" : "BTC"
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Type guard for {@link BtcToken} (token on the bitcoin network - lightning or on-chain)
|
|
91
|
+
*
|
|
92
|
+
* @category Tokens
|
|
93
|
+
*/
|
|
94
|
+
export function isBtcToken(obj: any): obj is BtcToken {
|
|
95
|
+
return typeof (obj) === "object" &&
|
|
96
|
+
obj.chain === "BTC" &&
|
|
97
|
+
typeof (obj.lightning) === "boolean" &&
|
|
98
|
+
typeof (obj.ticker) === "string" &&
|
|
99
|
+
typeof (obj.decimals) === "number" &&
|
|
100
|
+
typeof (obj.name) === "string";
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Predefined Bitcoin token constants
|
|
105
|
+
*
|
|
106
|
+
* @category Tokens
|
|
107
|
+
*/
|
|
108
|
+
export const BitcoinTokens: {
|
|
109
|
+
BTC: BtcToken<false>,
|
|
110
|
+
BTCLN: BtcToken<true>
|
|
111
|
+
} = {
|
|
112
|
+
BTC: {
|
|
113
|
+
chain: "BTC",
|
|
114
|
+
chainId: "BITCOIN",
|
|
115
|
+
lightning: false,
|
|
116
|
+
ticker: "BTC",
|
|
117
|
+
decimals: 8,
|
|
118
|
+
displayDecimals: 8,
|
|
119
|
+
name: "Bitcoin (on-chain L1)",
|
|
120
|
+
address: "",
|
|
121
|
+
equals: (other: Token) => other.chainId==="BITCOIN" && other.ticker==="BTC",
|
|
122
|
+
toString: () => "BTC"
|
|
123
|
+
},
|
|
124
|
+
BTCLN: {
|
|
125
|
+
chain: "BTC",
|
|
126
|
+
chainId: "LIGHTNING",
|
|
127
|
+
lightning: true,
|
|
128
|
+
ticker: "BTC",
|
|
129
|
+
decimals: 8,
|
|
130
|
+
displayDecimals: 8,
|
|
131
|
+
name: "Bitcoin (lightning L2)",
|
|
132
|
+
address: "",
|
|
133
|
+
equals: (other: Token) => other.chainId==="LIGHTNING" && other.ticker==="BTC",
|
|
134
|
+
toString: () => "BTC-LN"
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Token on the smart chain
|
|
140
|
+
*
|
|
141
|
+
* @category Tokens
|
|
142
|
+
*/
|
|
143
|
+
export type SCToken<ChainIdentifier extends string = string> = Token<ChainIdentifier> & {
|
|
144
|
+
chainId: ChainIdentifier,
|
|
145
|
+
chain: "SC"
|
|
146
|
+
|
|
147
|
+
toString: () => `${ChainIdentifier}-${string}`
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Type guard for {@link SCToken} (token on the smart chain)
|
|
152
|
+
* @category Tokens
|
|
153
|
+
*/
|
|
154
|
+
export function isSCToken<ChainIdentifier extends string = string>(obj: any, chainIdentifier?: ChainIdentifier[]): obj is SCToken<ChainIdentifier> {
|
|
155
|
+
return typeof (obj) === "object" &&
|
|
156
|
+
obj.chain === "SC" &&
|
|
157
|
+
typeof (obj.chainId) === "string" &&
|
|
158
|
+
(chainIdentifier==null || chainIdentifier.includes(obj.chainId)) &&
|
|
159
|
+
typeof (obj.address) === "string" &&
|
|
160
|
+
typeof (obj.ticker) === "string" &&
|
|
161
|
+
typeof (obj.decimals) === "number" &&
|
|
162
|
+
typeof (obj.name) === "string";
|
|
163
|
+
}
|