@atomiqlabs/base 10.0.0-dev.2 → 10.0.0-dev.21
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 +133 -110
- package/dist/chains/ChainInterface.js +7 -2
- package/dist/chains/ChainType.d.ts +24 -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/errors/TransactionRevertedError.d.ts +3 -0
- package/dist/errors/TransactionRevertedError.js +11 -0
- 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 +42 -38
- package/dist/index.js +58 -54
- package/dist/lockable/Lockable.d.ts +6 -6
- package/dist/lockable/Lockable.js +28 -28
- package/dist/messaging/Messenger.d.ts +8 -0
- package/dist/messaging/Messenger.js +2 -0
- package/dist/messaging/messages/Message.d.ts +11 -0
- package/dist/messaging/messages/Message.js +22 -0
- package/dist/messaging/messages/SwapClaimWitnessMessage.d.ts +10 -0
- package/dist/messaging/messages/SwapClaimWitnessMessage.js +28 -0
- package/dist/spv_swap/SpvVaultContract.d.ts +258 -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 +43 -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/SwapContract.d.ts +479 -467
- package/dist/swaps/SwapContract.js +2 -2
- package/dist/swaps/SwapData.d.ts +37 -36
- package/dist/swaps/SwapData.js +17 -14
- 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 +159 -132
- package/src/chains/ChainType.ts +40 -38
- package/src/errors/CannotInitializeATAError.ts +11 -11
- package/src/errors/SignatureVerificationError.ts +11 -11
- package/src/errors/SwapDataVerificationError.ts +11 -11
- package/src/errors/TransactionRevertedError.ts +11 -0
- 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 +51 -46
- package/src/lockable/Lockable.ts +30 -30
- package/src/messaging/Messenger.ts +11 -0
- package/src/messaging/messages/Message.ts +25 -0
- package/src/messaging/messages/SwapClaimWitnessMessage.ts +34 -0
- package/src/spv_swap/SpvVaultContract.ts +269 -230
- package/src/spv_swap/SpvVaultData.ts +70 -70
- package/src/spv_swap/SpvWithdrawalState.ts +40 -40
- package/src/spv_swap/SpvWithdrawalTransactionData.ts +169 -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 +564 -556
- package/src/swaps/SwapData.ts +69 -65
- package/src/utils/BigIntBufferUtils.ts +31 -31
package/src/index.ts
CHANGED
|
@@ -1,46 +1,51 @@
|
|
|
1
|
-
export * from "./btcrelay/BtcRelay";
|
|
2
|
-
export * from "./btc/rpc/BitcoinRpc";
|
|
3
|
-
export * from "./btcrelay/synchronizer/RelaySynchronizer";
|
|
4
|
-
export * from "./btcrelay/types/BtcBlock";
|
|
5
|
-
export * from "./btcrelay/types/BtcHeader";
|
|
6
|
-
export * from "./btcrelay/types/BtcStoredHeader";
|
|
7
|
-
export * from "./btcrelay/utils/StatePredictorUtils";
|
|
8
|
-
export * from "./events/ChainEvents";
|
|
9
|
-
export * from "./events/types/swap/ClaimEvent";
|
|
10
|
-
export * from "./events/types/swap/InitializeEvent";
|
|
11
|
-
export * from "./events/types/swap/RefundEvent";
|
|
12
|
-
export * from "./events/types/swap/SwapEvent";
|
|
13
|
-
export * from "./lockable/Lockable";
|
|
14
|
-
export * from "./storage/IStorageManager";
|
|
15
|
-
export * from "./storage/StorageObject";
|
|
16
|
-
export * from "./swaps/SwapContract";
|
|
17
|
-
export * from "./swaps/SwapData";
|
|
18
|
-
export * from "./swaps/ChainSwapType";
|
|
19
|
-
export * from "./swaps/SwapCommitState";
|
|
20
|
-
|
|
21
|
-
export * from "./errors/SignatureVerificationError";
|
|
22
|
-
export * from "./errors/CannotInitializeATAError"
|
|
23
|
-
export * from "./errors/SwapDataVerificationError";
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
export * from "./chains/
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
export * from "./spv_swap/
|
|
36
|
-
export * from "./spv_swap/
|
|
37
|
-
export * from "./spv_swap/
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
export * from "./events/types/spv_vault/
|
|
43
|
-
export * from "./events/types/spv_vault/
|
|
44
|
-
export * from "./events/types/spv_vault/
|
|
45
|
-
export * from "./events/types/spv_vault/
|
|
46
|
-
export * from "./events/types/spv_vault/
|
|
1
|
+
export * from "./btcrelay/BtcRelay";
|
|
2
|
+
export * from "./btc/rpc/BitcoinRpc";
|
|
3
|
+
export * from "./btcrelay/synchronizer/RelaySynchronizer";
|
|
4
|
+
export * from "./btcrelay/types/BtcBlock";
|
|
5
|
+
export * from "./btcrelay/types/BtcHeader";
|
|
6
|
+
export * from "./btcrelay/types/BtcStoredHeader";
|
|
7
|
+
export * from "./btcrelay/utils/StatePredictorUtils";
|
|
8
|
+
export * from "./events/ChainEvents";
|
|
9
|
+
export * from "./events/types/swap/ClaimEvent";
|
|
10
|
+
export * from "./events/types/swap/InitializeEvent";
|
|
11
|
+
export * from "./events/types/swap/RefundEvent";
|
|
12
|
+
export * from "./events/types/swap/SwapEvent";
|
|
13
|
+
export * from "./lockable/Lockable";
|
|
14
|
+
export * from "./storage/IStorageManager";
|
|
15
|
+
export * from "./storage/StorageObject";
|
|
16
|
+
export * from "./swaps/SwapContract";
|
|
17
|
+
export * from "./swaps/SwapData";
|
|
18
|
+
export * from "./swaps/ChainSwapType";
|
|
19
|
+
export * from "./swaps/SwapCommitState";
|
|
20
|
+
|
|
21
|
+
export * from "./errors/SignatureVerificationError";
|
|
22
|
+
export * from "./errors/CannotInitializeATAError"
|
|
23
|
+
export * from "./errors/SwapDataVerificationError";
|
|
24
|
+
export * from "./errors/TransactionRevertedError";
|
|
25
|
+
|
|
26
|
+
export * from "./chains/ChainType";
|
|
27
|
+
export * from "./chains/ChainData";
|
|
28
|
+
|
|
29
|
+
export * from "./utils/BigIntBufferUtils";
|
|
30
|
+
|
|
31
|
+
export * from "./btc/BitcoinNetwork";
|
|
32
|
+
|
|
33
|
+
export * from "./chains/ChainInterface";
|
|
34
|
+
|
|
35
|
+
export * from "./spv_swap/SpvVaultContract";
|
|
36
|
+
export * from "./spv_swap/SpvVaultData";
|
|
37
|
+
export * from "./spv_swap/SpvWithdrawalState";
|
|
38
|
+
export * from "./spv_swap/SpvWithdrawalTransactionData";
|
|
39
|
+
|
|
40
|
+
export * from "./events/types/ChainEvent";
|
|
41
|
+
|
|
42
|
+
export * from "./events/types/spv_vault/SpvVaultEvent";
|
|
43
|
+
export * from "./events/types/spv_vault/SpvVaultCloseEvent";
|
|
44
|
+
export * from "./events/types/spv_vault/SpvVaultClaimEvent";
|
|
45
|
+
export * from "./events/types/spv_vault/SpvVaultDepositEvent";
|
|
46
|
+
export * from "./events/types/spv_vault/SpvVaultOpenEvent";
|
|
47
|
+
export * from "./events/types/spv_vault/SpvVaultFrontEvent";
|
|
48
|
+
|
|
49
|
+
export * from "./messaging/Messenger";
|
|
50
|
+
export * from "./messaging/messages/Message";
|
|
51
|
+
export * from "./messaging/messages/SwapClaimWitnessMessage";
|
package/src/lockable/Lockable.ts
CHANGED
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export class Lockable {
|
|
4
|
-
|
|
5
|
-
private lockedTill = 0;
|
|
6
|
-
private lockNonce = 0;
|
|
7
|
-
|
|
8
|
-
lock(timeoutSeconds: number): (() => boolean) | null {
|
|
9
|
-
if(this.isLocked()) {
|
|
10
|
-
return null;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
this.lockedTill = Date.now()+(timeoutSeconds*1000);
|
|
14
|
-
|
|
15
|
-
this.lockNonce++;
|
|
16
|
-
const lockNonce = this.lockNonce;
|
|
17
|
-
return () => {
|
|
18
|
-
if(this.lockNonce!==lockNonce) {
|
|
19
|
-
return false;
|
|
20
|
-
}
|
|
21
|
-
this.lockedTill = 0;
|
|
22
|
-
return true;
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
isLocked(): boolean {
|
|
27
|
-
return this.lockedTill>Date.now();
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
}
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
export class Lockable {
|
|
4
|
+
|
|
5
|
+
private lockedTill = 0;
|
|
6
|
+
private lockNonce = 0;
|
|
7
|
+
|
|
8
|
+
lock(timeoutSeconds: number): (() => boolean) | null {
|
|
9
|
+
if(this.isLocked()) {
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
this.lockedTill = Date.now()+(timeoutSeconds*1000);
|
|
14
|
+
|
|
15
|
+
this.lockNonce++;
|
|
16
|
+
const lockNonce = this.lockNonce;
|
|
17
|
+
return () => {
|
|
18
|
+
if(this.lockNonce!==lockNonce) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
this.lockedTill = 0;
|
|
22
|
+
return true;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
isLocked(): boolean {
|
|
27
|
+
return this.lockedTill>Date.now();
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
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;
|