@atomiqlabs/lp-lib 14.0.0-dev.21 → 14.0.0-dev.23
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/dist/fees/IBtcFeeEstimator.d.ts +3 -3
- package/dist/fees/IBtcFeeEstimator.js +2 -2
- package/dist/index.d.ts +42 -42
- package/dist/index.js +58 -58
- package/dist/info/InfoHandler.d.ts +17 -17
- package/dist/info/InfoHandler.js +61 -61
- package/dist/plugins/IPlugin.d.ts +143 -143
- package/dist/plugins/IPlugin.js +34 -34
- package/dist/plugins/PluginManager.d.ts +112 -112
- package/dist/plugins/PluginManager.js +259 -259
- package/dist/prices/BinanceSwapPrice.d.ts +26 -26
- package/dist/prices/BinanceSwapPrice.js +92 -92
- package/dist/prices/CoinGeckoSwapPrice.d.ts +30 -30
- package/dist/prices/CoinGeckoSwapPrice.js +64 -64
- package/dist/prices/ISwapPrice.d.ts +43 -43
- package/dist/prices/ISwapPrice.js +55 -55
- package/dist/prices/OKXSwapPrice.d.ts +26 -26
- package/dist/prices/OKXSwapPrice.js +92 -92
- package/dist/storage/IIntermediaryStorage.d.ts +18 -18
- package/dist/storage/IIntermediaryStorage.js +2 -2
- package/dist/storagemanager/IntermediaryStorageManager.d.ts +19 -19
- package/dist/storagemanager/IntermediaryStorageManager.js +111 -111
- package/dist/storagemanager/StorageManager.d.ts +13 -13
- package/dist/storagemanager/StorageManager.js +64 -64
- package/dist/swaps/SwapHandler.d.ts +153 -153
- package/dist/swaps/SwapHandler.js +160 -160
- package/dist/swaps/SwapHandlerSwap.d.ts +79 -79
- package/dist/swaps/SwapHandlerSwap.js +78 -78
- package/dist/swaps/assertions/AmountAssertions.d.ts +28 -28
- package/dist/swaps/assertions/AmountAssertions.js +72 -72
- package/dist/swaps/assertions/FromBtcAmountAssertions.d.ts +76 -76
- package/dist/swaps/assertions/FromBtcAmountAssertions.js +180 -180
- package/dist/swaps/assertions/LightningAssertions.d.ts +44 -44
- package/dist/swaps/assertions/LightningAssertions.js +86 -86
- package/dist/swaps/assertions/ToBtcAmountAssertions.d.ts +53 -53
- package/dist/swaps/assertions/ToBtcAmountAssertions.js +150 -150
- package/dist/swaps/escrow/EscrowHandler.d.ts +51 -51
- package/dist/swaps/escrow/EscrowHandler.js +158 -158
- package/dist/swaps/escrow/EscrowHandlerSwap.d.ts +35 -35
- package/dist/swaps/escrow/EscrowHandlerSwap.js +69 -69
- package/dist/swaps/escrow/FromBtcBaseSwap.d.ts +14 -14
- package/dist/swaps/escrow/FromBtcBaseSwap.js +32 -32
- package/dist/swaps/escrow/FromBtcBaseSwapHandler.d.ts +102 -102
- package/dist/swaps/escrow/FromBtcBaseSwapHandler.js +210 -210
- package/dist/swaps/escrow/ToBtcBaseSwap.d.ts +36 -36
- package/dist/swaps/escrow/ToBtcBaseSwap.js +67 -67
- package/dist/swaps/escrow/ToBtcBaseSwapHandler.d.ts +53 -53
- package/dist/swaps/escrow/ToBtcBaseSwapHandler.js +81 -81
- package/dist/swaps/escrow/frombtc_abstract/FromBtcAbs.d.ts +83 -83
- package/dist/swaps/escrow/frombtc_abstract/FromBtcAbs.js +318 -318
- package/dist/swaps/escrow/frombtc_abstract/FromBtcSwapAbs.d.ts +21 -21
- package/dist/swaps/escrow/frombtc_abstract/FromBtcSwapAbs.js +50 -50
- package/dist/swaps/escrow/frombtcln_abstract/FromBtcLnAbs.d.ts +107 -107
- package/dist/swaps/escrow/frombtcln_abstract/FromBtcLnAbs.js +675 -675
- package/dist/swaps/escrow/frombtcln_abstract/FromBtcLnSwapAbs.d.ts +33 -33
- package/dist/swaps/escrow/frombtcln_abstract/FromBtcLnSwapAbs.js +91 -91
- package/dist/swaps/escrow/frombtcln_autoinit/FromBtcLnAuto.d.ts +111 -111
- package/dist/swaps/escrow/frombtcln_autoinit/FromBtcLnAuto.js +684 -684
- package/dist/swaps/escrow/frombtcln_autoinit/FromBtcLnAutoSwap.d.ts +55 -55
- package/dist/swaps/escrow/frombtcln_autoinit/FromBtcLnAutoSwap.js +120 -120
- package/dist/swaps/escrow/tobtc_abstract/ToBtcAbs.d.ts +171 -171
- package/dist/swaps/escrow/tobtc_abstract/ToBtcAbs.js +706 -706
- package/dist/swaps/escrow/tobtc_abstract/ToBtcSwapAbs.d.ts +26 -26
- package/dist/swaps/escrow/tobtc_abstract/ToBtcSwapAbs.js +62 -62
- package/dist/swaps/escrow/tobtcln_abstract/ToBtcLnAbs.d.ts +177 -177
- package/dist/swaps/escrow/tobtcln_abstract/ToBtcLnAbs.js +863 -863
- package/dist/swaps/escrow/tobtcln_abstract/ToBtcLnSwapAbs.d.ts +24 -24
- package/dist/swaps/escrow/tobtcln_abstract/ToBtcLnSwapAbs.js +58 -58
- package/dist/swaps/spv_vault_swap/SpvVault.d.ts +40 -41
- package/dist/swaps/spv_vault_swap/SpvVault.js +111 -111
- package/dist/swaps/spv_vault_swap/SpvVaultSwap.d.ts +67 -67
- package/dist/swaps/spv_vault_swap/SpvVaultSwap.js +158 -158
- package/dist/swaps/spv_vault_swap/SpvVaultSwapHandler.d.ts +68 -68
- package/dist/swaps/spv_vault_swap/SpvVaultSwapHandler.js +492 -492
- package/dist/swaps/spv_vault_swap/SpvVaults.d.ts +52 -52
- package/dist/swaps/spv_vault_swap/SpvVaults.js +386 -364
- package/dist/swaps/trusted/frombtc_trusted/FromBtcTrusted.d.ts +51 -51
- package/dist/swaps/trusted/frombtc_trusted/FromBtcTrusted.js +650 -650
- package/dist/swaps/trusted/frombtc_trusted/FromBtcTrustedSwap.d.ts +52 -52
- package/dist/swaps/trusted/frombtc_trusted/FromBtcTrustedSwap.js +118 -118
- package/dist/swaps/trusted/frombtcln_trusted/FromBtcLnTrusted.d.ts +76 -76
- package/dist/swaps/trusted/frombtcln_trusted/FromBtcLnTrusted.js +494 -494
- package/dist/swaps/trusted/frombtcln_trusted/FromBtcLnTrustedSwap.d.ts +34 -34
- package/dist/swaps/trusted/frombtcln_trusted/FromBtcLnTrustedSwap.js +81 -81
- package/dist/utils/BitcoinUtils.d.ts +2 -2
- package/dist/utils/BitcoinUtils.js +45 -45
- package/dist/utils/Utils.d.ts +29 -29
- package/dist/utils/Utils.js +89 -89
- package/dist/utils/paramcoders/IParamReader.d.ts +5 -5
- package/dist/utils/paramcoders/IParamReader.js +2 -2
- package/dist/utils/paramcoders/IParamWriter.d.ts +4 -4
- package/dist/utils/paramcoders/IParamWriter.js +2 -2
- package/dist/utils/paramcoders/LegacyParamEncoder.d.ts +10 -10
- package/dist/utils/paramcoders/LegacyParamEncoder.js +22 -22
- package/dist/utils/paramcoders/ParamDecoder.d.ts +25 -25
- package/dist/utils/paramcoders/ParamDecoder.js +222 -222
- package/dist/utils/paramcoders/ParamEncoder.d.ts +9 -9
- package/dist/utils/paramcoders/ParamEncoder.js +22 -22
- package/dist/utils/paramcoders/SchemaVerifier.d.ts +21 -21
- package/dist/utils/paramcoders/SchemaVerifier.js +84 -84
- package/dist/utils/paramcoders/server/ServerParamDecoder.d.ts +8 -8
- package/dist/utils/paramcoders/server/ServerParamDecoder.js +107 -107
- package/dist/utils/paramcoders/server/ServerParamEncoder.d.ts +11 -11
- package/dist/utils/paramcoders/server/ServerParamEncoder.js +65 -65
- package/dist/wallets/IBitcoinWallet.d.ts +67 -67
- package/dist/wallets/IBitcoinWallet.js +2 -2
- package/dist/wallets/ILightningWallet.d.ts +117 -117
- package/dist/wallets/ILightningWallet.js +37 -37
- package/dist/wallets/ISpvVaultSigner.d.ts +7 -7
- package/dist/wallets/ISpvVaultSigner.js +2 -2
- package/package.json +36 -36
- package/src/fees/IBtcFeeEstimator.ts +6 -6
- package/src/index.ts +53 -53
- package/src/info/InfoHandler.ts +106 -106
- package/src/plugins/IPlugin.ts +168 -168
- package/src/plugins/PluginManager.ts +336 -336
- package/src/prices/BinanceSwapPrice.ts +113 -113
- package/src/prices/CoinGeckoSwapPrice.ts +87 -87
- package/src/prices/ISwapPrice.ts +88 -88
- package/src/prices/OKXSwapPrice.ts +113 -113
- package/src/storage/IIntermediaryStorage.ts +19 -19
- package/src/storagemanager/IntermediaryStorageManager.ts +118 -118
- package/src/storagemanager/StorageManager.ts +78 -78
- package/src/swaps/SwapHandler.ts +277 -277
- package/src/swaps/SwapHandlerSwap.ts +141 -141
- package/src/swaps/assertions/AmountAssertions.ts +76 -76
- package/src/swaps/assertions/FromBtcAmountAssertions.ts +246 -246
- package/src/swaps/assertions/LightningAssertions.ts +103 -103
- package/src/swaps/assertions/ToBtcAmountAssertions.ts +203 -203
- package/src/swaps/escrow/EscrowHandler.ts +179 -179
- package/src/swaps/escrow/EscrowHandlerSwap.ts +86 -86
- package/src/swaps/escrow/FromBtcBaseSwap.ts +38 -38
- package/src/swaps/escrow/FromBtcBaseSwapHandler.ts +286 -286
- package/src/swaps/escrow/ToBtcBaseSwap.ts +85 -85
- package/src/swaps/escrow/ToBtcBaseSwapHandler.ts +129 -129
- package/src/swaps/escrow/frombtc_abstract/FromBtcAbs.ts +452 -452
- package/src/swaps/escrow/frombtc_abstract/FromBtcSwapAbs.ts +61 -61
- package/src/swaps/escrow/frombtcln_abstract/FromBtcLnAbs.ts +856 -856
- package/src/swaps/escrow/frombtcln_abstract/FromBtcLnSwapAbs.ts +141 -141
- package/src/swaps/escrow/frombtcln_autoinit/FromBtcLnAuto.ts +850 -850
- package/src/swaps/escrow/frombtcln_autoinit/FromBtcLnAutoSwap.ts +196 -196
- package/src/swaps/escrow/tobtc_abstract/ToBtcAbs.ts +879 -879
- package/src/swaps/escrow/tobtc_abstract/ToBtcSwapAbs.ts +102 -102
- package/src/swaps/escrow/tobtcln_abstract/ToBtcLnAbs.ts +1112 -1112
- package/src/swaps/escrow/tobtcln_abstract/ToBtcLnSwapAbs.ts +80 -80
- package/src/swaps/spv_vault_swap/SpvVault.ts +143 -143
- package/src/swaps/spv_vault_swap/SpvVaultSwap.ts +225 -225
- package/src/swaps/spv_vault_swap/SpvVaultSwapHandler.ts +628 -628
- package/src/swaps/spv_vault_swap/SpvVaults.ts +458 -435
- package/src/swaps/trusted/frombtc_trusted/FromBtcTrusted.ts +747 -747
- package/src/swaps/trusted/frombtc_trusted/FromBtcTrustedSwap.ts +185 -185
- package/src/swaps/trusted/frombtcln_trusted/FromBtcLnTrusted.ts +590 -590
- package/src/swaps/trusted/frombtcln_trusted/FromBtcLnTrustedSwap.ts +121 -121
- package/src/utils/BitcoinUtils.ts +42 -42
- package/src/utils/Utils.ts +104 -104
- package/src/utils/paramcoders/IParamReader.ts +7 -7
- package/src/utils/paramcoders/IParamWriter.ts +8 -8
- package/src/utils/paramcoders/LegacyParamEncoder.ts +27 -27
- package/src/utils/paramcoders/ParamDecoder.ts +218 -218
- package/src/utils/paramcoders/ParamEncoder.ts +29 -29
- package/src/utils/paramcoders/SchemaVerifier.ts +96 -96
- package/src/utils/paramcoders/server/ServerParamDecoder.ts +118 -118
- package/src/utils/paramcoders/server/ServerParamEncoder.ts +75 -75
- package/src/wallets/IBitcoinWallet.ts +68 -68
- package/src/wallets/ILightningWallet.ts +178 -178
- package/src/wallets/ISpvVaultSigner.ts +10 -10
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
import { SwapBaseConfig, SwapHandler } from "../SwapHandler";
|
|
2
|
-
import { ChainEvent, ChainSwapType, ClaimEvent, InitializeEvent, RefundEvent, SwapData, SwapEvent } from "@atomiqlabs/base";
|
|
3
|
-
import { EscrowHandlerSwap } from "./EscrowHandlerSwap";
|
|
4
|
-
import { ServerParamEncoder } from "../../utils/paramcoders/server/ServerParamEncoder";
|
|
5
|
-
import { SwapHandlerSwap } from "../SwapHandlerSwap";
|
|
6
|
-
export type ToBtcBaseConfig = SwapBaseConfig & {
|
|
7
|
-
gracePeriod: bigint;
|
|
8
|
-
refundAuthorizationTimeout: number;
|
|
9
|
-
};
|
|
10
|
-
export declare abstract class EscrowHandler<V extends EscrowHandlerSwap<SwapData, S>, S> extends SwapHandler<V, S> {
|
|
11
|
-
abstract readonly swapType: ChainSwapType;
|
|
12
|
-
readonly escrowHashMap: Map<string, V>;
|
|
13
|
-
protected swapLogger: {
|
|
14
|
-
debug: (swap: SwapHandlerSwap | SwapEvent<SwapData> | SwapData, msg: string, ...args: any) => void;
|
|
15
|
-
info: (swap: SwapHandlerSwap | SwapEvent<SwapData> | SwapData, msg: string, ...args: any) => void;
|
|
16
|
-
warn: (swap: SwapHandlerSwap | SwapEvent<SwapData> | SwapData, msg: string, ...args: any) => void;
|
|
17
|
-
error: (swap: SwapHandlerSwap | SwapEvent<SwapData> | SwapData, msg: string, ...args: any) => void;
|
|
18
|
-
};
|
|
19
|
-
protected abstract processInitializeEvent(chainIdentifier: string, swap: V, event: InitializeEvent<SwapData>): Promise<void>;
|
|
20
|
-
protected abstract processClaimEvent(chainIdentifier: string, swap: V, event: ClaimEvent<SwapData>): Promise<void>;
|
|
21
|
-
protected abstract processRefundEvent(chainIdentifier: string, swap: V, event: RefundEvent<SwapData>): Promise<void>;
|
|
22
|
-
/**
|
|
23
|
-
* Chain event processor
|
|
24
|
-
*
|
|
25
|
-
* @param chainIdentifier
|
|
26
|
-
* @param eventData
|
|
27
|
-
*/
|
|
28
|
-
protected processEvent(chainIdentifier: string, eventData: ChainEvent<SwapData>[]): Promise<boolean>;
|
|
29
|
-
/**
|
|
30
|
-
* Initializes chain events subscription
|
|
31
|
-
*/
|
|
32
|
-
protected subscribeToEvents(): void;
|
|
33
|
-
protected loadData(ctor: new (data: any) => V): Promise<void>;
|
|
34
|
-
protected removeSwapData(hash: string, sequence: bigint): Promise<void>;
|
|
35
|
-
protected removeSwapData(swap: V, ultimateState?: S): Promise<void>;
|
|
36
|
-
protected saveSwapData(swap: V): Promise<void>;
|
|
37
|
-
protected saveSwapToEscrowHashMap(swap: V): void;
|
|
38
|
-
protected removeSwapFromEscrowHashMap(swap: V): void;
|
|
39
|
-
protected getSwapByEscrowHash(chainIdentifier: string, escrowHash: string): V;
|
|
40
|
-
protected getIdentifierFromEvent(event: SwapEvent<SwapData>): string;
|
|
41
|
-
protected getIdentifierFromSwapData(swapData: SwapData): string;
|
|
42
|
-
protected getIdentifier(swap: SwapHandlerSwap | SwapEvent<SwapData> | SwapData): string;
|
|
43
|
-
/**
|
|
44
|
-
* Starts a pre-fetch for signature data
|
|
45
|
-
*
|
|
46
|
-
* @param chainIdentifier
|
|
47
|
-
* @param abortController
|
|
48
|
-
* @param responseStream
|
|
49
|
-
*/
|
|
50
|
-
protected getSignDataPrefetch(chainIdentifier: string, abortController: AbortController, responseStream?: ServerParamEncoder): Promise<any>;
|
|
51
|
-
}
|
|
1
|
+
import { SwapBaseConfig, SwapHandler } from "../SwapHandler";
|
|
2
|
+
import { ChainEvent, ChainSwapType, ClaimEvent, InitializeEvent, RefundEvent, SwapData, SwapEvent } from "@atomiqlabs/base";
|
|
3
|
+
import { EscrowHandlerSwap } from "./EscrowHandlerSwap";
|
|
4
|
+
import { ServerParamEncoder } from "../../utils/paramcoders/server/ServerParamEncoder";
|
|
5
|
+
import { SwapHandlerSwap } from "../SwapHandlerSwap";
|
|
6
|
+
export type ToBtcBaseConfig = SwapBaseConfig & {
|
|
7
|
+
gracePeriod: bigint;
|
|
8
|
+
refundAuthorizationTimeout: number;
|
|
9
|
+
};
|
|
10
|
+
export declare abstract class EscrowHandler<V extends EscrowHandlerSwap<SwapData, S>, S> extends SwapHandler<V, S> {
|
|
11
|
+
abstract readonly swapType: ChainSwapType;
|
|
12
|
+
readonly escrowHashMap: Map<string, V>;
|
|
13
|
+
protected swapLogger: {
|
|
14
|
+
debug: (swap: SwapHandlerSwap | SwapEvent<SwapData> | SwapData, msg: string, ...args: any) => void;
|
|
15
|
+
info: (swap: SwapHandlerSwap | SwapEvent<SwapData> | SwapData, msg: string, ...args: any) => void;
|
|
16
|
+
warn: (swap: SwapHandlerSwap | SwapEvent<SwapData> | SwapData, msg: string, ...args: any) => void;
|
|
17
|
+
error: (swap: SwapHandlerSwap | SwapEvent<SwapData> | SwapData, msg: string, ...args: any) => void;
|
|
18
|
+
};
|
|
19
|
+
protected abstract processInitializeEvent(chainIdentifier: string, swap: V, event: InitializeEvent<SwapData>): Promise<void>;
|
|
20
|
+
protected abstract processClaimEvent(chainIdentifier: string, swap: V, event: ClaimEvent<SwapData>): Promise<void>;
|
|
21
|
+
protected abstract processRefundEvent(chainIdentifier: string, swap: V, event: RefundEvent<SwapData>): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Chain event processor
|
|
24
|
+
*
|
|
25
|
+
* @param chainIdentifier
|
|
26
|
+
* @param eventData
|
|
27
|
+
*/
|
|
28
|
+
protected processEvent(chainIdentifier: string, eventData: ChainEvent<SwapData>[]): Promise<boolean>;
|
|
29
|
+
/**
|
|
30
|
+
* Initializes chain events subscription
|
|
31
|
+
*/
|
|
32
|
+
protected subscribeToEvents(): void;
|
|
33
|
+
protected loadData(ctor: new (data: any) => V): Promise<void>;
|
|
34
|
+
protected removeSwapData(hash: string, sequence: bigint): Promise<void>;
|
|
35
|
+
protected removeSwapData(swap: V, ultimateState?: S): Promise<void>;
|
|
36
|
+
protected saveSwapData(swap: V): Promise<void>;
|
|
37
|
+
protected saveSwapToEscrowHashMap(swap: V): void;
|
|
38
|
+
protected removeSwapFromEscrowHashMap(swap: V): void;
|
|
39
|
+
protected getSwapByEscrowHash(chainIdentifier: string, escrowHash: string): V;
|
|
40
|
+
protected getIdentifierFromEvent(event: SwapEvent<SwapData>): string;
|
|
41
|
+
protected getIdentifierFromSwapData(swapData: SwapData): string;
|
|
42
|
+
protected getIdentifier(swap: SwapHandlerSwap | SwapEvent<SwapData> | SwapData): string;
|
|
43
|
+
/**
|
|
44
|
+
* Starts a pre-fetch for signature data
|
|
45
|
+
*
|
|
46
|
+
* @param chainIdentifier
|
|
47
|
+
* @param abortController
|
|
48
|
+
* @param responseStream
|
|
49
|
+
*/
|
|
50
|
+
protected getSignDataPrefetch(chainIdentifier: string, abortController: AbortController, responseStream?: ServerParamEncoder): Promise<any>;
|
|
51
|
+
}
|
|
@@ -1,158 +1,158 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EscrowHandler = void 0;
|
|
4
|
-
const SwapHandler_1 = require("../SwapHandler");
|
|
5
|
-
const base_1 = require("@atomiqlabs/base");
|
|
6
|
-
const PluginManager_1 = require("../../plugins/PluginManager");
|
|
7
|
-
const SwapHandlerSwap_1 = require("../SwapHandlerSwap");
|
|
8
|
-
class EscrowHandler extends SwapHandler_1.SwapHandler {
|
|
9
|
-
constructor() {
|
|
10
|
-
super(...arguments);
|
|
11
|
-
this.escrowHashMap = new Map();
|
|
12
|
-
this.swapLogger = {
|
|
13
|
-
debug: (swap, msg, ...args) => this.logger.debug(this.getIdentifier(swap) + ": " + msg, ...args),
|
|
14
|
-
info: (swap, msg, ...args) => this.logger.info(this.getIdentifier(swap) + ": " + msg, ...args),
|
|
15
|
-
warn: (swap, msg, ...args) => this.logger.warn(this.getIdentifier(swap) + ": " + msg, ...args),
|
|
16
|
-
error: (swap, msg, ...args) => this.logger.error(this.getIdentifier(swap) + ": " + msg, ...args)
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Chain event processor
|
|
21
|
-
*
|
|
22
|
-
* @param chainIdentifier
|
|
23
|
-
* @param eventData
|
|
24
|
-
*/
|
|
25
|
-
async processEvent(chainIdentifier, eventData) {
|
|
26
|
-
if (this.swapType == null)
|
|
27
|
-
return true;
|
|
28
|
-
for (let event of eventData) {
|
|
29
|
-
if (event instanceof base_1.InitializeEvent) {
|
|
30
|
-
if (event.swapType !== this.swapType)
|
|
31
|
-
continue;
|
|
32
|
-
const swap = this.getSwapByEscrowHash(chainIdentifier, event.escrowHash);
|
|
33
|
-
if (swap == null)
|
|
34
|
-
continue;
|
|
35
|
-
swap.txIds.init = event.meta?.txId;
|
|
36
|
-
if (swap.metadata != null)
|
|
37
|
-
swap.metadata.times.initTxReceived = Date.now();
|
|
38
|
-
await this.processInitializeEvent(chainIdentifier, swap, event);
|
|
39
|
-
}
|
|
40
|
-
else if (event instanceof base_1.ClaimEvent) {
|
|
41
|
-
const swap = this.getSwapByEscrowHash(chainIdentifier, event.escrowHash);
|
|
42
|
-
if (swap == null)
|
|
43
|
-
continue;
|
|
44
|
-
swap.txIds.claim = event.meta?.txId;
|
|
45
|
-
if (swap.metadata != null)
|
|
46
|
-
swap.metadata.times.claimTxReceived = Date.now();
|
|
47
|
-
await this.processClaimEvent(chainIdentifier, swap, event);
|
|
48
|
-
}
|
|
49
|
-
else if (event instanceof base_1.RefundEvent) {
|
|
50
|
-
const swap = this.getSwapByEscrowHash(chainIdentifier, event.escrowHash);
|
|
51
|
-
if (swap == null)
|
|
52
|
-
continue;
|
|
53
|
-
swap.txIds.refund = event.meta?.txId;
|
|
54
|
-
if (swap.metadata != null)
|
|
55
|
-
swap.metadata.times.refundTxReceived = Date.now();
|
|
56
|
-
await this.processRefundEvent(chainIdentifier, swap, event);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
return true;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Initializes chain events subscription
|
|
63
|
-
*/
|
|
64
|
-
subscribeToEvents() {
|
|
65
|
-
for (let key in this.chains.chains) {
|
|
66
|
-
this.chains.chains[key].chainEvents.registerListener((events) => this.processEvent(key, events));
|
|
67
|
-
}
|
|
68
|
-
this.logger.info("SC: Events: subscribed to smartchain events");
|
|
69
|
-
}
|
|
70
|
-
async loadData(ctor) {
|
|
71
|
-
await super.loadData(ctor);
|
|
72
|
-
for (let { obj: swap, hash, sequence } of await this.storageManager.query([])) {
|
|
73
|
-
this.saveSwapToEscrowHashMap(swap);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
async removeSwapData(hashOrSwap, sequenceOrUltimateState) {
|
|
77
|
-
let swap;
|
|
78
|
-
if (typeof (hashOrSwap) === "string") {
|
|
79
|
-
if (typeof (sequenceOrUltimateState) !== "bigint")
|
|
80
|
-
throw new Error("Sequence must be a BN instance!");
|
|
81
|
-
swap = await this.storageManager.getData(hashOrSwap, sequenceOrUltimateState);
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
swap = hashOrSwap;
|
|
85
|
-
if (sequenceOrUltimateState != null && typeof (sequenceOrUltimateState) !== "bigint")
|
|
86
|
-
await swap.setState(sequenceOrUltimateState);
|
|
87
|
-
}
|
|
88
|
-
if (swap != null)
|
|
89
|
-
await PluginManager_1.PluginManager.swapRemove(swap);
|
|
90
|
-
this.swapLogger.debug(swap, "removeSwapData(): removing swap final state: " + swap.state);
|
|
91
|
-
this.removeSwapFromEscrowHashMap(swap);
|
|
92
|
-
await this.storageManager.removeData(swap.getIdentifierHash(), swap.getSequence());
|
|
93
|
-
}
|
|
94
|
-
async saveSwapData(swap) {
|
|
95
|
-
this.saveSwapToEscrowHashMap(swap);
|
|
96
|
-
return super.saveSwapData(swap);
|
|
97
|
-
}
|
|
98
|
-
saveSwapToEscrowHashMap(swap) {
|
|
99
|
-
if (swap.data != null)
|
|
100
|
-
this.escrowHashMap.set(swap.chainIdentifier + "_" + swap.getEscrowHash(), swap);
|
|
101
|
-
}
|
|
102
|
-
removeSwapFromEscrowHashMap(swap) {
|
|
103
|
-
if (swap.data != null)
|
|
104
|
-
this.escrowHashMap.delete(swap.chainIdentifier + "_" + swap.getEscrowHash());
|
|
105
|
-
}
|
|
106
|
-
getSwapByEscrowHash(chainIdentifier, escrowHash) {
|
|
107
|
-
return this.escrowHashMap.get(chainIdentifier + "_" + escrowHash);
|
|
108
|
-
}
|
|
109
|
-
getIdentifierFromEvent(event) {
|
|
110
|
-
if (event instanceof base_1.SwapEvent) {
|
|
111
|
-
const foundSwap = this.escrowHashMap.get(event.escrowHash);
|
|
112
|
-
if (foundSwap != null) {
|
|
113
|
-
return foundSwap.getIdentifier();
|
|
114
|
-
}
|
|
115
|
-
return "UNKNOWN_" + event.escrowHash;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
getIdentifierFromSwapData(swapData) {
|
|
119
|
-
if (swapData.getSequence == null)
|
|
120
|
-
return swapData.getClaimHash();
|
|
121
|
-
return swapData.getClaimHash() + "_" + swapData.getSequence().toString(16);
|
|
122
|
-
}
|
|
123
|
-
getIdentifier(swap) {
|
|
124
|
-
if (swap instanceof SwapHandlerSwap_1.SwapHandlerSwap) {
|
|
125
|
-
return swap.getIdentifier();
|
|
126
|
-
}
|
|
127
|
-
if (swap instanceof base_1.ChainEvent) {
|
|
128
|
-
return this.getIdentifierFromEvent(swap);
|
|
129
|
-
}
|
|
130
|
-
return this.getIdentifierFromSwapData(swap);
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Starts a pre-fetch for signature data
|
|
134
|
-
*
|
|
135
|
-
* @param chainIdentifier
|
|
136
|
-
* @param abortController
|
|
137
|
-
* @param responseStream
|
|
138
|
-
*/
|
|
139
|
-
getSignDataPrefetch(chainIdentifier, abortController, responseStream) {
|
|
140
|
-
const { swapContract } = this.getChain(chainIdentifier);
|
|
141
|
-
let signDataPrefetchPromise = swapContract.preFetchBlockDataForSignatures != null ? swapContract.preFetchBlockDataForSignatures().catch(e => {
|
|
142
|
-
this.logger.error("getSignDataPrefetch(): signDataPrefetch: ", e);
|
|
143
|
-
abortController.abort(e);
|
|
144
|
-
return null;
|
|
145
|
-
}) : null;
|
|
146
|
-
if (signDataPrefetchPromise != null && responseStream != null) {
|
|
147
|
-
signDataPrefetchPromise = signDataPrefetchPromise.then(val => val == null || abortController.signal.aborted ? null : responseStream.writeParams({
|
|
148
|
-
signDataPrefetch: val
|
|
149
|
-
}).then(() => val).catch(e => {
|
|
150
|
-
this.logger.error("getSignDataPrefetch(): signDataPreFetch: error when sending sign data to the client: ", e);
|
|
151
|
-
abortController.abort(e);
|
|
152
|
-
return null;
|
|
153
|
-
}));
|
|
154
|
-
}
|
|
155
|
-
return signDataPrefetchPromise;
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
exports.EscrowHandler = EscrowHandler;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EscrowHandler = void 0;
|
|
4
|
+
const SwapHandler_1 = require("../SwapHandler");
|
|
5
|
+
const base_1 = require("@atomiqlabs/base");
|
|
6
|
+
const PluginManager_1 = require("../../plugins/PluginManager");
|
|
7
|
+
const SwapHandlerSwap_1 = require("../SwapHandlerSwap");
|
|
8
|
+
class EscrowHandler extends SwapHandler_1.SwapHandler {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(...arguments);
|
|
11
|
+
this.escrowHashMap = new Map();
|
|
12
|
+
this.swapLogger = {
|
|
13
|
+
debug: (swap, msg, ...args) => this.logger.debug(this.getIdentifier(swap) + ": " + msg, ...args),
|
|
14
|
+
info: (swap, msg, ...args) => this.logger.info(this.getIdentifier(swap) + ": " + msg, ...args),
|
|
15
|
+
warn: (swap, msg, ...args) => this.logger.warn(this.getIdentifier(swap) + ": " + msg, ...args),
|
|
16
|
+
error: (swap, msg, ...args) => this.logger.error(this.getIdentifier(swap) + ": " + msg, ...args)
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Chain event processor
|
|
21
|
+
*
|
|
22
|
+
* @param chainIdentifier
|
|
23
|
+
* @param eventData
|
|
24
|
+
*/
|
|
25
|
+
async processEvent(chainIdentifier, eventData) {
|
|
26
|
+
if (this.swapType == null)
|
|
27
|
+
return true;
|
|
28
|
+
for (let event of eventData) {
|
|
29
|
+
if (event instanceof base_1.InitializeEvent) {
|
|
30
|
+
if (event.swapType !== this.swapType)
|
|
31
|
+
continue;
|
|
32
|
+
const swap = this.getSwapByEscrowHash(chainIdentifier, event.escrowHash);
|
|
33
|
+
if (swap == null)
|
|
34
|
+
continue;
|
|
35
|
+
swap.txIds.init = event.meta?.txId;
|
|
36
|
+
if (swap.metadata != null)
|
|
37
|
+
swap.metadata.times.initTxReceived = Date.now();
|
|
38
|
+
await this.processInitializeEvent(chainIdentifier, swap, event);
|
|
39
|
+
}
|
|
40
|
+
else if (event instanceof base_1.ClaimEvent) {
|
|
41
|
+
const swap = this.getSwapByEscrowHash(chainIdentifier, event.escrowHash);
|
|
42
|
+
if (swap == null)
|
|
43
|
+
continue;
|
|
44
|
+
swap.txIds.claim = event.meta?.txId;
|
|
45
|
+
if (swap.metadata != null)
|
|
46
|
+
swap.metadata.times.claimTxReceived = Date.now();
|
|
47
|
+
await this.processClaimEvent(chainIdentifier, swap, event);
|
|
48
|
+
}
|
|
49
|
+
else if (event instanceof base_1.RefundEvent) {
|
|
50
|
+
const swap = this.getSwapByEscrowHash(chainIdentifier, event.escrowHash);
|
|
51
|
+
if (swap == null)
|
|
52
|
+
continue;
|
|
53
|
+
swap.txIds.refund = event.meta?.txId;
|
|
54
|
+
if (swap.metadata != null)
|
|
55
|
+
swap.metadata.times.refundTxReceived = Date.now();
|
|
56
|
+
await this.processRefundEvent(chainIdentifier, swap, event);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Initializes chain events subscription
|
|
63
|
+
*/
|
|
64
|
+
subscribeToEvents() {
|
|
65
|
+
for (let key in this.chains.chains) {
|
|
66
|
+
this.chains.chains[key].chainEvents.registerListener((events) => this.processEvent(key, events));
|
|
67
|
+
}
|
|
68
|
+
this.logger.info("SC: Events: subscribed to smartchain events");
|
|
69
|
+
}
|
|
70
|
+
async loadData(ctor) {
|
|
71
|
+
await super.loadData(ctor);
|
|
72
|
+
for (let { obj: swap, hash, sequence } of await this.storageManager.query([])) {
|
|
73
|
+
this.saveSwapToEscrowHashMap(swap);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
async removeSwapData(hashOrSwap, sequenceOrUltimateState) {
|
|
77
|
+
let swap;
|
|
78
|
+
if (typeof (hashOrSwap) === "string") {
|
|
79
|
+
if (typeof (sequenceOrUltimateState) !== "bigint")
|
|
80
|
+
throw new Error("Sequence must be a BN instance!");
|
|
81
|
+
swap = await this.storageManager.getData(hashOrSwap, sequenceOrUltimateState);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
swap = hashOrSwap;
|
|
85
|
+
if (sequenceOrUltimateState != null && typeof (sequenceOrUltimateState) !== "bigint")
|
|
86
|
+
await swap.setState(sequenceOrUltimateState);
|
|
87
|
+
}
|
|
88
|
+
if (swap != null)
|
|
89
|
+
await PluginManager_1.PluginManager.swapRemove(swap);
|
|
90
|
+
this.swapLogger.debug(swap, "removeSwapData(): removing swap final state: " + swap.state);
|
|
91
|
+
this.removeSwapFromEscrowHashMap(swap);
|
|
92
|
+
await this.storageManager.removeData(swap.getIdentifierHash(), swap.getSequence());
|
|
93
|
+
}
|
|
94
|
+
async saveSwapData(swap) {
|
|
95
|
+
this.saveSwapToEscrowHashMap(swap);
|
|
96
|
+
return super.saveSwapData(swap);
|
|
97
|
+
}
|
|
98
|
+
saveSwapToEscrowHashMap(swap) {
|
|
99
|
+
if (swap.data != null)
|
|
100
|
+
this.escrowHashMap.set(swap.chainIdentifier + "_" + swap.getEscrowHash(), swap);
|
|
101
|
+
}
|
|
102
|
+
removeSwapFromEscrowHashMap(swap) {
|
|
103
|
+
if (swap.data != null)
|
|
104
|
+
this.escrowHashMap.delete(swap.chainIdentifier + "_" + swap.getEscrowHash());
|
|
105
|
+
}
|
|
106
|
+
getSwapByEscrowHash(chainIdentifier, escrowHash) {
|
|
107
|
+
return this.escrowHashMap.get(chainIdentifier + "_" + escrowHash);
|
|
108
|
+
}
|
|
109
|
+
getIdentifierFromEvent(event) {
|
|
110
|
+
if (event instanceof base_1.SwapEvent) {
|
|
111
|
+
const foundSwap = this.escrowHashMap.get(event.escrowHash);
|
|
112
|
+
if (foundSwap != null) {
|
|
113
|
+
return foundSwap.getIdentifier();
|
|
114
|
+
}
|
|
115
|
+
return "UNKNOWN_" + event.escrowHash;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
getIdentifierFromSwapData(swapData) {
|
|
119
|
+
if (swapData.getSequence == null)
|
|
120
|
+
return swapData.getClaimHash();
|
|
121
|
+
return swapData.getClaimHash() + "_" + swapData.getSequence().toString(16);
|
|
122
|
+
}
|
|
123
|
+
getIdentifier(swap) {
|
|
124
|
+
if (swap instanceof SwapHandlerSwap_1.SwapHandlerSwap) {
|
|
125
|
+
return swap.getIdentifier();
|
|
126
|
+
}
|
|
127
|
+
if (swap instanceof base_1.ChainEvent) {
|
|
128
|
+
return this.getIdentifierFromEvent(swap);
|
|
129
|
+
}
|
|
130
|
+
return this.getIdentifierFromSwapData(swap);
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Starts a pre-fetch for signature data
|
|
134
|
+
*
|
|
135
|
+
* @param chainIdentifier
|
|
136
|
+
* @param abortController
|
|
137
|
+
* @param responseStream
|
|
138
|
+
*/
|
|
139
|
+
getSignDataPrefetch(chainIdentifier, abortController, responseStream) {
|
|
140
|
+
const { swapContract } = this.getChain(chainIdentifier);
|
|
141
|
+
let signDataPrefetchPromise = swapContract.preFetchBlockDataForSignatures != null ? swapContract.preFetchBlockDataForSignatures().catch(e => {
|
|
142
|
+
this.logger.error("getSignDataPrefetch(): signDataPrefetch: ", e);
|
|
143
|
+
abortController.abort(e);
|
|
144
|
+
return null;
|
|
145
|
+
}) : null;
|
|
146
|
+
if (signDataPrefetchPromise != null && responseStream != null) {
|
|
147
|
+
signDataPrefetchPromise = signDataPrefetchPromise.then(val => val == null || abortController.signal.aborted ? null : responseStream.writeParams({
|
|
148
|
+
signDataPrefetch: val
|
|
149
|
+
}).then(() => val).catch(e => {
|
|
150
|
+
this.logger.error("getSignDataPrefetch(): signDataPreFetch: error when sending sign data to the client: ", e);
|
|
151
|
+
abortController.abort(e);
|
|
152
|
+
return null;
|
|
153
|
+
}));
|
|
154
|
+
}
|
|
155
|
+
return signDataPrefetchPromise;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
exports.EscrowHandler = EscrowHandler;
|
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
import { SwapData } from "@atomiqlabs/base";
|
|
2
|
-
import { SwapHandlerSwap } from "../SwapHandlerSwap";
|
|
3
|
-
export declare abstract class EscrowHandlerSwap<T extends SwapData = SwapData, S = any> extends SwapHandlerSwap<S> {
|
|
4
|
-
data: T;
|
|
5
|
-
txIds: {
|
|
6
|
-
init?: string;
|
|
7
|
-
claim?: string;
|
|
8
|
-
refund?: string;
|
|
9
|
-
};
|
|
10
|
-
prefix: string;
|
|
11
|
-
timeout: string;
|
|
12
|
-
signature: string;
|
|
13
|
-
feeRate: string;
|
|
14
|
-
protected constructor(chainIdentifier: string, swapFee: bigint, swapFeeInToken: bigint);
|
|
15
|
-
protected constructor(obj: any);
|
|
16
|
-
serialize(): any;
|
|
17
|
-
/**
|
|
18
|
-
* Returns the escrow hash - i.e. hash of the escrow data
|
|
19
|
-
*/
|
|
20
|
-
getEscrowHash(): string;
|
|
21
|
-
/**
|
|
22
|
-
* Returns the claim data hash - i.e. hash passed to the claim handler
|
|
23
|
-
*/
|
|
24
|
-
getClaimHash(): string;
|
|
25
|
-
/**
|
|
26
|
-
* Returns the identification hash of the swap, usually claim data hash, but can be overriden, e.g. for
|
|
27
|
-
* lightning swaps the identifier hash is used instead of claim data hash
|
|
28
|
-
*/
|
|
29
|
-
getIdentifierHash(): string;
|
|
30
|
-
getSequence(): bigint | null;
|
|
31
|
-
/**
|
|
32
|
-
* Returns the smart chain token used for the swap
|
|
33
|
-
*/
|
|
34
|
-
getToken(): string;
|
|
35
|
-
}
|
|
1
|
+
import { SwapData } from "@atomiqlabs/base";
|
|
2
|
+
import { SwapHandlerSwap } from "../SwapHandlerSwap";
|
|
3
|
+
export declare abstract class EscrowHandlerSwap<T extends SwapData = SwapData, S = any> extends SwapHandlerSwap<S> {
|
|
4
|
+
data: T;
|
|
5
|
+
txIds: {
|
|
6
|
+
init?: string;
|
|
7
|
+
claim?: string;
|
|
8
|
+
refund?: string;
|
|
9
|
+
};
|
|
10
|
+
prefix: string;
|
|
11
|
+
timeout: string;
|
|
12
|
+
signature: string;
|
|
13
|
+
feeRate: string;
|
|
14
|
+
protected constructor(chainIdentifier: string, swapFee: bigint, swapFeeInToken: bigint);
|
|
15
|
+
protected constructor(obj: any);
|
|
16
|
+
serialize(): any;
|
|
17
|
+
/**
|
|
18
|
+
* Returns the escrow hash - i.e. hash of the escrow data
|
|
19
|
+
*/
|
|
20
|
+
getEscrowHash(): string;
|
|
21
|
+
/**
|
|
22
|
+
* Returns the claim data hash - i.e. hash passed to the claim handler
|
|
23
|
+
*/
|
|
24
|
+
getClaimHash(): string;
|
|
25
|
+
/**
|
|
26
|
+
* Returns the identification hash of the swap, usually claim data hash, but can be overriden, e.g. for
|
|
27
|
+
* lightning swaps the identifier hash is used instead of claim data hash
|
|
28
|
+
*/
|
|
29
|
+
getIdentifierHash(): string;
|
|
30
|
+
getSequence(): bigint | null;
|
|
31
|
+
/**
|
|
32
|
+
* Returns the smart chain token used for the swap
|
|
33
|
+
*/
|
|
34
|
+
getToken(): string;
|
|
35
|
+
}
|
|
@@ -1,69 +1,69 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EscrowHandlerSwap = void 0;
|
|
4
|
-
const base_1 = require("@atomiqlabs/base");
|
|
5
|
-
const SwapHandlerSwap_1 = require("../SwapHandlerSwap");
|
|
6
|
-
function objectBigIntsToString(obj) {
|
|
7
|
-
for (let key in obj) {
|
|
8
|
-
if (typeof obj[key] === "bigint")
|
|
9
|
-
obj[key] = obj[key].toString(10);
|
|
10
|
-
if (typeof obj[key] === "object")
|
|
11
|
-
objectBigIntsToString(obj[key]);
|
|
12
|
-
}
|
|
13
|
-
return obj;
|
|
14
|
-
}
|
|
15
|
-
class EscrowHandlerSwap extends SwapHandlerSwap_1.SwapHandlerSwap {
|
|
16
|
-
constructor(obj, swapFee, swapFeeInToken) {
|
|
17
|
-
super(obj, swapFee, swapFeeInToken);
|
|
18
|
-
this.txIds = {};
|
|
19
|
-
if (typeof (obj) === "string" && typeof (swapFee) === "bigint" && typeof (swapFeeInToken) === "bigint") {
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
else {
|
|
23
|
-
this.data = obj.data == null ? null : base_1.SwapData.deserialize(obj.data);
|
|
24
|
-
this.prefix = obj.prefix;
|
|
25
|
-
this.timeout = obj.timeout;
|
|
26
|
-
this.signature = obj.signature;
|
|
27
|
-
this.feeRate = obj.feeRate;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
serialize() {
|
|
31
|
-
return {
|
|
32
|
-
...super.serialize(),
|
|
33
|
-
data: this.data == null ? null : this.data.serialize(),
|
|
34
|
-
prefix: this.prefix,
|
|
35
|
-
timeout: this.timeout,
|
|
36
|
-
signature: this.signature,
|
|
37
|
-
feeRate: this.feeRate
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Returns the escrow hash - i.e. hash of the escrow data
|
|
42
|
-
*/
|
|
43
|
-
getEscrowHash() {
|
|
44
|
-
return this.data?.getEscrowHash();
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Returns the claim data hash - i.e. hash passed to the claim handler
|
|
48
|
-
*/
|
|
49
|
-
getClaimHash() {
|
|
50
|
-
return this.data?.getClaimHash();
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Returns the identification hash of the swap, usually claim data hash, but can be overriden, e.g. for
|
|
54
|
-
* lightning swaps the identifier hash is used instead of claim data hash
|
|
55
|
-
*/
|
|
56
|
-
getIdentifierHash() {
|
|
57
|
-
return this.getClaimHash();
|
|
58
|
-
}
|
|
59
|
-
getSequence() {
|
|
60
|
-
return this.data?.getSequence == null ? null : this.data.getSequence();
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Returns the smart chain token used for the swap
|
|
64
|
-
*/
|
|
65
|
-
getToken() {
|
|
66
|
-
return this.data?.getToken();
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
exports.EscrowHandlerSwap = EscrowHandlerSwap;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EscrowHandlerSwap = void 0;
|
|
4
|
+
const base_1 = require("@atomiqlabs/base");
|
|
5
|
+
const SwapHandlerSwap_1 = require("../SwapHandlerSwap");
|
|
6
|
+
function objectBigIntsToString(obj) {
|
|
7
|
+
for (let key in obj) {
|
|
8
|
+
if (typeof obj[key] === "bigint")
|
|
9
|
+
obj[key] = obj[key].toString(10);
|
|
10
|
+
if (typeof obj[key] === "object")
|
|
11
|
+
objectBigIntsToString(obj[key]);
|
|
12
|
+
}
|
|
13
|
+
return obj;
|
|
14
|
+
}
|
|
15
|
+
class EscrowHandlerSwap extends SwapHandlerSwap_1.SwapHandlerSwap {
|
|
16
|
+
constructor(obj, swapFee, swapFeeInToken) {
|
|
17
|
+
super(obj, swapFee, swapFeeInToken);
|
|
18
|
+
this.txIds = {};
|
|
19
|
+
if (typeof (obj) === "string" && typeof (swapFee) === "bigint" && typeof (swapFeeInToken) === "bigint") {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
this.data = obj.data == null ? null : base_1.SwapData.deserialize(obj.data);
|
|
24
|
+
this.prefix = obj.prefix;
|
|
25
|
+
this.timeout = obj.timeout;
|
|
26
|
+
this.signature = obj.signature;
|
|
27
|
+
this.feeRate = obj.feeRate;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
serialize() {
|
|
31
|
+
return {
|
|
32
|
+
...super.serialize(),
|
|
33
|
+
data: this.data == null ? null : this.data.serialize(),
|
|
34
|
+
prefix: this.prefix,
|
|
35
|
+
timeout: this.timeout,
|
|
36
|
+
signature: this.signature,
|
|
37
|
+
feeRate: this.feeRate
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Returns the escrow hash - i.e. hash of the escrow data
|
|
42
|
+
*/
|
|
43
|
+
getEscrowHash() {
|
|
44
|
+
return this.data?.getEscrowHash();
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Returns the claim data hash - i.e. hash passed to the claim handler
|
|
48
|
+
*/
|
|
49
|
+
getClaimHash() {
|
|
50
|
+
return this.data?.getClaimHash();
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Returns the identification hash of the swap, usually claim data hash, but can be overriden, e.g. for
|
|
54
|
+
* lightning swaps the identifier hash is used instead of claim data hash
|
|
55
|
+
*/
|
|
56
|
+
getIdentifierHash() {
|
|
57
|
+
return this.getClaimHash();
|
|
58
|
+
}
|
|
59
|
+
getSequence() {
|
|
60
|
+
return this.data?.getSequence == null ? null : this.data.getSequence();
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Returns the smart chain token used for the swap
|
|
64
|
+
*/
|
|
65
|
+
getToken() {
|
|
66
|
+
return this.data?.getToken();
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
exports.EscrowHandlerSwap = EscrowHandlerSwap;
|