@atomiqlabs/base 10.0.0-dev.8 → 11.0.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/LICENSE +201 -201
- package/dist/btc/BitcoinNetwork.d.ts +6 -6
- package/dist/btc/BitcoinNetwork.js +10 -10
- package/dist/btc/rpc/BitcoinRpc.d.ts +68 -68
- package/dist/btc/rpc/BitcoinRpc.js +2 -2
- package/dist/btcrelay/BtcRelay.d.ts +61 -61
- package/dist/btcrelay/BtcRelay.js +2 -2
- package/dist/btcrelay/synchronizer/RelaySynchronizer.d.ts +18 -18
- package/dist/btcrelay/synchronizer/RelaySynchronizer.js +2 -2
- package/dist/btcrelay/types/BtcBlock.d.ts +13 -13
- package/dist/btcrelay/types/BtcBlock.js +2 -2
- package/dist/btcrelay/types/BtcHeader.d.ts +10 -10
- package/dist/btcrelay/types/BtcHeader.js +2 -2
- package/dist/btcrelay/types/BtcStoredHeader.d.ts +11 -11
- package/dist/btcrelay/types/BtcStoredHeader.js +2 -2
- package/dist/btcrelay/utils/StatePredictorUtils.d.ts +11 -11
- package/dist/btcrelay/utils/StatePredictorUtils.js +80 -80
- package/dist/chains/ChainData.d.ts +31 -31
- package/dist/chains/ChainData.js +2 -2
- package/dist/chains/ChainInterface.d.ts +110 -110
- package/dist/chains/ChainInterface.js +2 -2
- package/dist/chains/ChainType.d.ts +23 -23
- package/dist/chains/ChainType.js +2 -2
- package/dist/errors/CannotInitializeATAError.d.ts +3 -3
- package/dist/errors/CannotInitializeATAError.js +11 -11
- package/dist/errors/SignatureVerificationError.d.ts +3 -3
- package/dist/errors/SignatureVerificationError.js +11 -11
- package/dist/errors/SwapDataVerificationError.d.ts +3 -3
- package/dist/errors/SwapDataVerificationError.js +11 -11
- package/dist/events/ChainEvents.d.ts +9 -9
- package/dist/events/ChainEvents.js +2 -2
- package/dist/events/types/ChainEvent.d.ts +7 -7
- package/dist/events/types/ChainEvent.js +6 -6
- package/dist/events/types/spv_vault/SpvVaultClaimEvent.d.ts +12 -12
- package/dist/events/types/spv_vault/SpvVaultClaimEvent.js +18 -18
- package/dist/events/types/spv_vault/SpvVaultCloseEvent.d.ts +7 -7
- package/dist/events/types/spv_vault/SpvVaultCloseEvent.js +13 -13
- package/dist/events/types/spv_vault/SpvVaultDepositEvent.d.ts +7 -7
- package/dist/events/types/spv_vault/SpvVaultDepositEvent.js +13 -13
- package/dist/events/types/spv_vault/SpvVaultEvent.d.ts +15 -15
- package/dist/events/types/spv_vault/SpvVaultEvent.js +20 -20
- package/dist/events/types/spv_vault/SpvVaultFrontEvent.d.ts +10 -10
- package/dist/events/types/spv_vault/SpvVaultFrontEvent.js +16 -16
- package/dist/events/types/spv_vault/SpvVaultOpenEvent.d.ts +7 -7
- package/dist/events/types/spv_vault/SpvVaultOpenEvent.js +13 -13
- package/dist/events/types/swap/ClaimEvent.d.ts +7 -7
- package/dist/events/types/swap/ClaimEvent.js +11 -11
- package/dist/events/types/swap/InitializeEvent.d.ts +9 -9
- package/dist/events/types/swap/InitializeEvent.js +12 -12
- package/dist/events/types/swap/RefundEvent.d.ts +5 -5
- package/dist/events/types/swap/RefundEvent.js +7 -7
- package/dist/events/types/swap/SwapEvent.d.ts +12 -12
- package/dist/events/types/swap/SwapEvent.js +17 -17
- package/dist/index.d.ts +38 -41
- package/dist/index.js +54 -57
- package/dist/lockable/Lockable.d.ts +6 -6
- package/dist/lockable/Lockable.js +28 -28
- package/dist/spv_swap/SpvVaultContract.d.ts +187 -199
- package/dist/spv_swap/SpvVaultContract.js +2 -2
- package/dist/spv_swap/SpvVaultData.d.ts +35 -35
- package/dist/spv_swap/SpvVaultData.js +37 -37
- package/dist/spv_swap/SpvWithdrawalState.d.ts +31 -31
- package/dist/spv_swap/SpvWithdrawalState.js +10 -10
- package/dist/spv_swap/SpvWithdrawalTransactionData.d.ts +42 -43
- package/dist/spv_swap/SpvWithdrawalTransactionData.js +143 -143
- package/dist/storage/IStorageManager.d.ts +15 -15
- package/dist/storage/IStorageManager.js +2 -2
- package/dist/storage/StorageObject.d.ts +3 -3
- package/dist/storage/StorageObject.js +2 -2
- package/dist/swaps/ChainSwapType.d.ts +6 -6
- package/dist/swaps/ChainSwapType.js +10 -10
- package/dist/swaps/SwapCommitState.d.ts +39 -38
- package/dist/swaps/SwapCommitState.js +11 -11
- package/dist/swaps/SwapCommitStatus.d.ts +7 -0
- package/dist/swaps/SwapCommitStatus.js +11 -0
- package/dist/swaps/SwapContract.d.ts +463 -468
- package/dist/swaps/SwapContract.js +2 -2
- package/dist/swaps/SwapData.d.ts +36 -37
- package/dist/swaps/SwapData.js +14 -17
- package/dist/utils/BigIntBufferUtils.d.ts +6 -6
- package/dist/utils/BigIntBufferUtils.js +31 -31
- package/package.json +31 -31
- package/src/btc/BitcoinNetwork.ts +6 -6
- package/src/btc/rpc/BitcoinRpc.ts +77 -77
- package/src/btcrelay/BtcRelay.ts +70 -70
- package/src/btcrelay/synchronizer/RelaySynchronizer.ts +17 -17
- package/src/btcrelay/types/BtcBlock.ts +15 -15
- package/src/btcrelay/types/BtcHeader.ts +11 -11
- package/src/btcrelay/types/BtcStoredHeader.ts +12 -12
- package/src/btcrelay/utils/StatePredictorUtils.ts +108 -108
- package/src/chains/ChainData.ts +40 -40
- package/src/chains/ChainInterface.ts +132 -132
- package/src/chains/ChainType.ts +38 -38
- package/src/errors/CannotInitializeATAError.ts +11 -11
- package/src/errors/SignatureVerificationError.ts +11 -11
- package/src/errors/SwapDataVerificationError.ts +11 -11
- package/src/events/ChainEvents.ts +13 -13
- package/src/events/types/ChainEvent.ts +10 -10
- package/src/events/types/spv_vault/SpvVaultClaimEvent.ts +31 -31
- package/src/events/types/spv_vault/SpvVaultCloseEvent.ts +17 -17
- package/src/events/types/spv_vault/SpvVaultDepositEvent.ts +17 -17
- package/src/events/types/spv_vault/SpvVaultEvent.ts +25 -25
- package/src/events/types/spv_vault/SpvVaultFrontEvent.ts +27 -27
- package/src/events/types/spv_vault/SpvVaultOpenEvent.ts +16 -16
- package/src/events/types/swap/ClaimEvent.ts +15 -15
- package/src/events/types/swap/InitializeEvent.ts +18 -18
- package/src/events/types/swap/RefundEvent.ts +6 -6
- package/src/events/types/swap/SwapEvent.ts +21 -21
- package/src/index.ts +46 -50
- package/src/lockable/Lockable.ts +30 -30
- package/src/spv_swap/SpvVaultContract.ts +217 -230
- package/src/spv_swap/SpvVaultData.ts +70 -70
- package/src/spv_swap/SpvWithdrawalState.ts +40 -40
- package/src/spv_swap/SpvWithdrawalTransactionData.ts +167 -169
- package/src/storage/IStorageManager.ts +16 -16
- package/src/storage/StorageObject.ts +6 -6
- package/src/swaps/ChainSwapType.ts +6 -6
- package/src/swaps/SwapCommitState.ts +40 -39
- package/src/swaps/SwapContract.ts +552 -557
- package/src/swaps/SwapData.ts +65 -69
- package/src/utils/BigIntBufferUtils.ts +31 -31
- package/dist/messaging/EventMessaging.d.ts +0 -8
- package/dist/messaging/EventMessaging.js +0 -2
- package/dist/messaging/Messenger.d.ts +0 -8
- package/dist/messaging/Messenger.js +0 -2
- package/dist/messaging/messages/Message.d.ts +0 -11
- package/dist/messaging/messages/Message.js +0 -22
- package/dist/messaging/messages/SwapClaimWitnessMessage.d.ts +0 -10
- package/dist/messaging/messages/SwapClaimWitnessMessage.js +0 -28
- package/src/messaging/Messenger.ts +0 -11
- package/src/messaging/messages/Message.ts +0 -25
- package/src/messaging/messages/SwapClaimWitnessMessage.ts +0 -34
package/src/swaps/SwapData.ts
CHANGED
|
@@ -1,69 +1,65 @@
|
|
|
1
|
-
import {ChainSwapType} from "./ChainSwapType";
|
|
2
|
-
import {StorageObject} from "../storage/StorageObject";
|
|
3
|
-
|
|
4
|
-
export abstract class SwapData implements StorageObject {
|
|
5
|
-
|
|
6
|
-
static deserializers: {
|
|
7
|
-
[type: string]: new (serialized: any) => any,
|
|
8
|
-
} = {};
|
|
9
|
-
|
|
10
|
-
static deserialize<T extends SwapData>(data: any): T {
|
|
11
|
-
const deserializer = SwapData.deserializers[data.type];
|
|
12
|
-
if(deserializer != null) {
|
|
13
|
-
return new deserializer(data) as unknown as T;
|
|
14
|
-
}
|
|
15
|
-
throw new Error(`No deserializer found for swap data type: ${data.type}`);
|
|
16
|
-
}
|
|
17
|
-
abstract getOfferer(): string;
|
|
18
|
-
abstract setOfferer(newOfferer: string): void;
|
|
19
|
-
abstract isOfferer(address: string): boolean;
|
|
20
|
-
|
|
21
|
-
abstract getClaimer(): string;
|
|
22
|
-
abstract setClaimer(newClaimer: string): void;
|
|
23
|
-
abstract isClaimer(address: string): boolean;
|
|
24
|
-
|
|
25
|
-
abstract serialize(): any;
|
|
26
|
-
|
|
27
|
-
abstract getType(): ChainSwapType;
|
|
28
|
-
|
|
29
|
-
abstract getAmount(): bigint;
|
|
30
|
-
|
|
31
|
-
abstract getToken(): string;
|
|
32
|
-
|
|
33
|
-
abstract isToken(token: string): boolean;
|
|
34
|
-
|
|
35
|
-
abstract getExpiry(): bigint;
|
|
36
|
-
|
|
37
|
-
abstract isPayOut(): boolean;
|
|
38
|
-
|
|
39
|
-
abstract isPayIn(): boolean;
|
|
40
|
-
|
|
41
|
-
abstract getClaimHash(): string;
|
|
42
|
-
|
|
43
|
-
abstract getEscrowHash(): string;
|
|
44
|
-
|
|
45
|
-
abstract getSequence?(): bigint;
|
|
46
|
-
|
|
47
|
-
abstract getExtraData(): string;
|
|
48
|
-
abstract getConfirmationsHint(): number;
|
|
49
|
-
abstract getNonceHint(): bigint;
|
|
50
|
-
abstract getTxoHashHint(): string;
|
|
51
|
-
abstract setExtraData(extraData: string): void;
|
|
52
|
-
|
|
53
|
-
abstract getSecurityDeposit(): bigint;
|
|
54
|
-
|
|
55
|
-
abstract getClaimerBounty(): bigint;
|
|
56
|
-
|
|
57
|
-
abstract getTotalDeposit(): bigint;
|
|
58
|
-
|
|
59
|
-
abstract getDepositToken(): string;
|
|
60
|
-
abstract isDepositToken(token: string): boolean;
|
|
61
|
-
|
|
62
|
-
abstract equals(other: SwapData): boolean;
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
}
|
|
69
|
-
|
|
1
|
+
import {ChainSwapType} from "./ChainSwapType";
|
|
2
|
+
import {StorageObject} from "../storage/StorageObject";
|
|
3
|
+
|
|
4
|
+
export abstract class SwapData implements StorageObject {
|
|
5
|
+
|
|
6
|
+
static deserializers: {
|
|
7
|
+
[type: string]: new (serialized: any) => any,
|
|
8
|
+
} = {};
|
|
9
|
+
|
|
10
|
+
static deserialize<T extends SwapData>(data: any): T {
|
|
11
|
+
const deserializer = SwapData.deserializers[data.type];
|
|
12
|
+
if(deserializer != null) {
|
|
13
|
+
return new deserializer(data) as unknown as T;
|
|
14
|
+
}
|
|
15
|
+
throw new Error(`No deserializer found for swap data type: ${data.type}`);
|
|
16
|
+
}
|
|
17
|
+
abstract getOfferer(): string;
|
|
18
|
+
abstract setOfferer(newOfferer: string): void;
|
|
19
|
+
abstract isOfferer(address: string): boolean;
|
|
20
|
+
|
|
21
|
+
abstract getClaimer(): string;
|
|
22
|
+
abstract setClaimer(newClaimer: string): void;
|
|
23
|
+
abstract isClaimer(address: string): boolean;
|
|
24
|
+
|
|
25
|
+
abstract serialize(): any;
|
|
26
|
+
|
|
27
|
+
abstract getType(): ChainSwapType;
|
|
28
|
+
|
|
29
|
+
abstract getAmount(): bigint;
|
|
30
|
+
|
|
31
|
+
abstract getToken(): string;
|
|
32
|
+
|
|
33
|
+
abstract isToken(token: string): boolean;
|
|
34
|
+
|
|
35
|
+
abstract getExpiry(): bigint;
|
|
36
|
+
|
|
37
|
+
abstract isPayOut(): boolean;
|
|
38
|
+
|
|
39
|
+
abstract isPayIn(): boolean;
|
|
40
|
+
|
|
41
|
+
abstract getClaimHash(): string;
|
|
42
|
+
|
|
43
|
+
abstract getEscrowHash(): string;
|
|
44
|
+
|
|
45
|
+
abstract getSequence?(): bigint;
|
|
46
|
+
|
|
47
|
+
abstract getExtraData(): string;
|
|
48
|
+
abstract getConfirmationsHint(): number;
|
|
49
|
+
abstract getNonceHint(): bigint;
|
|
50
|
+
abstract getTxoHashHint(): string;
|
|
51
|
+
abstract setExtraData(extraData: string): void;
|
|
52
|
+
|
|
53
|
+
abstract getSecurityDeposit(): bigint;
|
|
54
|
+
|
|
55
|
+
abstract getClaimerBounty(): bigint;
|
|
56
|
+
|
|
57
|
+
abstract getTotalDeposit(): bigint;
|
|
58
|
+
|
|
59
|
+
abstract getDepositToken(): string;
|
|
60
|
+
abstract isDepositToken(token: string): boolean;
|
|
61
|
+
|
|
62
|
+
abstract equals(other: SwapData): boolean;
|
|
63
|
+
|
|
64
|
+
}
|
|
65
|
+
|
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
import {Buffer} from "buffer";
|
|
2
|
-
|
|
3
|
-
export const BigIntBufferUtils: {
|
|
4
|
-
toBuffer: (value: bigint, endianness?: "be" | "le", length?: number) => Buffer
|
|
5
|
-
fromBuffer: (value: Buffer, endianness?: "be" | "le") => bigint
|
|
6
|
-
} = {
|
|
7
|
-
toBuffer: (value: bigint, endianness: "be" | "le" = "be", length: number) => {
|
|
8
|
-
let values: number[] = Array(length);
|
|
9
|
-
for(let i=0;i<length;i++) {
|
|
10
|
-
values[i] = Number(value & 0xffn);
|
|
11
|
-
value >>= 8n;
|
|
12
|
-
}
|
|
13
|
-
const buff = Buffer.from(values);
|
|
14
|
-
if(endianness==="be") buff.reverse();
|
|
15
|
-
return buff;
|
|
16
|
-
},
|
|
17
|
-
fromBuffer: (value: Buffer, endianness: "be" | "le" = "be") => {
|
|
18
|
-
if(endianness==="le") {
|
|
19
|
-
const dst = Buffer.alloc(value.length);
|
|
20
|
-
value.copy(dst);
|
|
21
|
-
dst.reverse();
|
|
22
|
-
value = dst;
|
|
23
|
-
}
|
|
24
|
-
let accumulator = 0n;
|
|
25
|
-
for(let byte of value) {
|
|
26
|
-
accumulator <<= 8n;
|
|
27
|
-
accumulator |= BigInt(byte);
|
|
28
|
-
}
|
|
29
|
-
return accumulator;
|
|
30
|
-
}
|
|
31
|
-
};
|
|
1
|
+
import {Buffer} from "buffer";
|
|
2
|
+
|
|
3
|
+
export const BigIntBufferUtils: {
|
|
4
|
+
toBuffer: (value: bigint, endianness?: "be" | "le", length?: number) => Buffer
|
|
5
|
+
fromBuffer: (value: Buffer, endianness?: "be" | "le") => bigint
|
|
6
|
+
} = {
|
|
7
|
+
toBuffer: (value: bigint, endianness: "be" | "le" = "be", length: number) => {
|
|
8
|
+
let values: number[] = Array(length);
|
|
9
|
+
for(let i=0;i<length;i++) {
|
|
10
|
+
values[i] = Number(value & 0xffn);
|
|
11
|
+
value >>= 8n;
|
|
12
|
+
}
|
|
13
|
+
const buff = Buffer.from(values);
|
|
14
|
+
if(endianness==="be") buff.reverse();
|
|
15
|
+
return buff;
|
|
16
|
+
},
|
|
17
|
+
fromBuffer: (value: Buffer, endianness: "be" | "le" = "be") => {
|
|
18
|
+
if(endianness==="le") {
|
|
19
|
+
const dst = Buffer.alloc(value.length);
|
|
20
|
+
value.copy(dst);
|
|
21
|
+
dst.reverse();
|
|
22
|
+
value = dst;
|
|
23
|
+
}
|
|
24
|
+
let accumulator = 0n;
|
|
25
|
+
for(let byte of value) {
|
|
26
|
+
accumulator <<= 8n;
|
|
27
|
+
accumulator |= BigInt(byte);
|
|
28
|
+
}
|
|
29
|
+
return accumulator;
|
|
30
|
+
}
|
|
31
|
+
};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { Message } from "./messages/Message";
|
|
2
|
-
export interface EventMessaging {
|
|
3
|
-
init(): Promise<void>;
|
|
4
|
-
broadcast(msg: Message): Promise<void>;
|
|
5
|
-
subscribe(callback: (msg: Message) => void): Promise<void>;
|
|
6
|
-
unsubscribe(callback: (msg: Message) => void): Promise<boolean>;
|
|
7
|
-
stop(): Promise<void>;
|
|
8
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { Message } from "./messages/Message";
|
|
2
|
-
export interface Messenger {
|
|
3
|
-
init(): Promise<void>;
|
|
4
|
-
broadcast(msg: Message): Promise<void>;
|
|
5
|
-
subscribe(callback: (msg: Message) => void): Promise<void>;
|
|
6
|
-
unsubscribe(callback: (msg: Message) => void): Promise<boolean>;
|
|
7
|
-
stop(): Promise<void>;
|
|
8
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export declare enum MessageType {
|
|
2
|
-
SWAP_CLAIM_WITNESS = 0
|
|
3
|
-
}
|
|
4
|
-
export declare abstract class Message {
|
|
5
|
-
abstract type: MessageType;
|
|
6
|
-
static deserializers: {
|
|
7
|
-
[type: number]: (obj: any) => Message;
|
|
8
|
-
};
|
|
9
|
-
serialize(): any;
|
|
10
|
-
static deserialize(message: any): Message;
|
|
11
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Message = exports.MessageType = void 0;
|
|
4
|
-
var MessageType;
|
|
5
|
-
(function (MessageType) {
|
|
6
|
-
MessageType[MessageType["SWAP_CLAIM_WITNESS"] = 0] = "SWAP_CLAIM_WITNESS";
|
|
7
|
-
})(MessageType = exports.MessageType || (exports.MessageType = {}));
|
|
8
|
-
class Message {
|
|
9
|
-
serialize() {
|
|
10
|
-
return {
|
|
11
|
-
type: this.type
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
static deserialize(message) {
|
|
15
|
-
const deserializer = Message.deserializers[message.type];
|
|
16
|
-
if (deserializer == null)
|
|
17
|
-
throw new Error("Unknown message type " + message.type);
|
|
18
|
-
return deserializer(message);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
exports.Message = Message;
|
|
22
|
-
Message.deserializers = {};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { SwapData } from "../../swaps/SwapData";
|
|
2
|
-
import { Message, MessageType } from "./Message";
|
|
3
|
-
export declare class SwapClaimWitnessMessage<T extends SwapData> extends Message {
|
|
4
|
-
type: MessageType;
|
|
5
|
-
swapData: T;
|
|
6
|
-
witness: string;
|
|
7
|
-
constructor(swapData: T, witness: string);
|
|
8
|
-
serialize(): any;
|
|
9
|
-
static deserialize(obj: any): SwapClaimWitnessMessage<SwapData>;
|
|
10
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SwapClaimWitnessMessage = void 0;
|
|
4
|
-
const SwapData_1 = require("../../swaps/SwapData");
|
|
5
|
-
const Message_1 = require("./Message");
|
|
6
|
-
class SwapClaimWitnessMessage extends Message_1.Message {
|
|
7
|
-
constructor(swapData, witness) {
|
|
8
|
-
super();
|
|
9
|
-
this.type = Message_1.MessageType.SWAP_CLAIM_WITNESS;
|
|
10
|
-
this.swapData = swapData;
|
|
11
|
-
this.witness = witness;
|
|
12
|
-
}
|
|
13
|
-
serialize() {
|
|
14
|
-
return {
|
|
15
|
-
...super.serialize(),
|
|
16
|
-
swapData: this.swapData.serialize(),
|
|
17
|
-
witness: this.witness
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
static deserialize(obj) {
|
|
21
|
-
if (obj == null || typeof (obj.witness) !== "string" || typeof (obj.swapData) !== "object") {
|
|
22
|
-
throw new Error("Invalid format!");
|
|
23
|
-
}
|
|
24
|
-
return new SwapClaimWitnessMessage(SwapData_1.SwapData.deserialize(obj.swapData), obj.witness);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
exports.SwapClaimWitnessMessage = SwapClaimWitnessMessage;
|
|
28
|
-
Message_1.Message.deserializers[Message_1.MessageType.SWAP_CLAIM_WITNESS] = SwapClaimWitnessMessage.deserialize;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import {Message} from "./messages/Message";
|
|
2
|
-
|
|
3
|
-
export interface Messenger {
|
|
4
|
-
|
|
5
|
-
init(): Promise<void>;
|
|
6
|
-
broadcast(msg: Message): Promise<void>;
|
|
7
|
-
subscribe(callback: (msg: Message) => void): Promise<void>;
|
|
8
|
-
unsubscribe(callback: (msg: Message) => void): Promise<boolean>;
|
|
9
|
-
stop(): Promise<void>;
|
|
10
|
-
|
|
11
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
export enum MessageType {
|
|
3
|
-
SWAP_CLAIM_WITNESS = 0,
|
|
4
|
-
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
export abstract class Message {
|
|
8
|
-
|
|
9
|
-
abstract type: MessageType;
|
|
10
|
-
|
|
11
|
-
static deserializers: {[type: number]: (obj: any) => Message} = {};
|
|
12
|
-
|
|
13
|
-
serialize(): any {
|
|
14
|
-
return {
|
|
15
|
-
type: this.type
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
static deserialize(message: any): Message {
|
|
20
|
-
const deserializer = Message.deserializers[message.type];
|
|
21
|
-
if(deserializer==null) throw new Error("Unknown message type " + message.type);
|
|
22
|
-
return deserializer(message);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import {SwapData} from "../../swaps/SwapData";
|
|
2
|
-
import {Message, MessageType} from "./Message";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export class SwapClaimWitnessMessage<T extends SwapData> extends Message {
|
|
6
|
-
|
|
7
|
-
type = MessageType.SWAP_CLAIM_WITNESS;
|
|
8
|
-
swapData: T;
|
|
9
|
-
witness: string;
|
|
10
|
-
|
|
11
|
-
constructor(swapData: T, witness: string) {
|
|
12
|
-
super();
|
|
13
|
-
this.swapData = swapData;
|
|
14
|
-
this.witness = witness;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
serialize() {
|
|
18
|
-
return {
|
|
19
|
-
...super.serialize(),
|
|
20
|
-
swapData: this.swapData.serialize(),
|
|
21
|
-
witness: this.witness
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
static deserialize(obj: any) {
|
|
26
|
-
if(obj==null || typeof(obj.witness)!=="string" || typeof(obj.swapData)!=="object") {
|
|
27
|
-
throw new Error("Invalid format!");
|
|
28
|
-
}
|
|
29
|
-
return new SwapClaimWitnessMessage(SwapData.deserialize(obj.swapData), obj.witness);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
Message.deserializers[MessageType.SWAP_CLAIM_WITNESS] = SwapClaimWitnessMessage.deserialize;
|