@atomiqlabs/chain-starknet 4.0.0-dev.12 → 4.0.0-dev.13
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/index.d.ts +38 -38
- package/dist/index.js +54 -54
- package/dist/starknet/StarknetChainType.d.ts +13 -13
- package/dist/starknet/StarknetChainType.js +2 -2
- package/dist/starknet/StarknetInitializer.d.ts +27 -27
- package/dist/starknet/StarknetInitializer.js +69 -69
- package/dist/starknet/btcrelay/BtcRelayAbi.d.ts +250 -250
- package/dist/starknet/btcrelay/BtcRelayAbi.js +341 -341
- package/dist/starknet/btcrelay/StarknetBtcRelay.d.ts +186 -186
- package/dist/starknet/btcrelay/StarknetBtcRelay.js +379 -379
- package/dist/starknet/btcrelay/headers/StarknetBtcHeader.d.ts +31 -31
- package/dist/starknet/btcrelay/headers/StarknetBtcHeader.js +74 -74
- package/dist/starknet/btcrelay/headers/StarknetBtcStoredHeader.d.ts +51 -51
- package/dist/starknet/btcrelay/headers/StarknetBtcStoredHeader.js +113 -113
- package/dist/starknet/chain/StarknetAction.d.ts +19 -19
- package/dist/starknet/chain/StarknetAction.js +73 -73
- package/dist/starknet/chain/StarknetChainInterface.d.ts +52 -52
- package/dist/starknet/chain/StarknetChainInterface.js +91 -91
- package/dist/starknet/chain/StarknetModule.d.ts +14 -14
- package/dist/starknet/chain/StarknetModule.js +13 -13
- package/dist/starknet/chain/modules/ERC20Abi.d.ts +755 -755
- package/dist/starknet/chain/modules/ERC20Abi.js +1032 -1032
- package/dist/starknet/chain/modules/StarknetAccounts.d.ts +6 -6
- package/dist/starknet/chain/modules/StarknetAccounts.js +24 -24
- package/dist/starknet/chain/modules/StarknetAddresses.d.ts +9 -9
- package/dist/starknet/chain/modules/StarknetAddresses.js +26 -26
- package/dist/starknet/chain/modules/StarknetBlocks.d.ts +20 -20
- package/dist/starknet/chain/modules/StarknetBlocks.js +64 -64
- package/dist/starknet/chain/modules/StarknetEvents.d.ts +44 -44
- package/dist/starknet/chain/modules/StarknetEvents.js +88 -88
- package/dist/starknet/chain/modules/StarknetFees.d.ts +77 -77
- package/dist/starknet/chain/modules/StarknetFees.js +114 -114
- package/dist/starknet/chain/modules/StarknetSignatures.d.ts +29 -29
- package/dist/starknet/chain/modules/StarknetSignatures.js +72 -72
- package/dist/starknet/chain/modules/StarknetTokens.d.ts +69 -69
- package/dist/starknet/chain/modules/StarknetTokens.js +102 -98
- package/dist/starknet/chain/modules/StarknetTransactions.d.ts +93 -93
- package/dist/starknet/chain/modules/StarknetTransactions.js +261 -260
- package/dist/starknet/contract/StarknetContractBase.d.ts +13 -13
- package/dist/starknet/contract/StarknetContractBase.js +20 -16
- package/dist/starknet/contract/StarknetContractModule.d.ts +8 -8
- package/dist/starknet/contract/StarknetContractModule.js +11 -11
- package/dist/starknet/contract/modules/StarknetContractEvents.d.ts +51 -51
- package/dist/starknet/contract/modules/StarknetContractEvents.js +97 -97
- package/dist/starknet/events/StarknetChainEvents.d.ts +21 -21
- package/dist/starknet/events/StarknetChainEvents.js +52 -52
- package/dist/starknet/events/StarknetChainEventsBrowser.d.ts +89 -90
- package/dist/starknet/events/StarknetChainEventsBrowser.js +296 -294
- package/dist/starknet/provider/RpcProviderWithRetries.d.ts +21 -21
- package/dist/starknet/provider/RpcProviderWithRetries.js +32 -32
- package/dist/starknet/spv_swap/SpvVaultContractAbi.d.ts +488 -488
- package/dist/starknet/spv_swap/SpvVaultContractAbi.js +656 -656
- package/dist/starknet/spv_swap/StarknetSpvVaultContract.d.ts +66 -66
- package/dist/starknet/spv_swap/StarknetSpvVaultContract.js +382 -382
- package/dist/starknet/spv_swap/StarknetSpvVaultData.d.ts +49 -49
- package/dist/starknet/spv_swap/StarknetSpvVaultData.js +145 -145
- package/dist/starknet/spv_swap/StarknetSpvWithdrawalData.d.ts +25 -25
- package/dist/starknet/spv_swap/StarknetSpvWithdrawalData.js +72 -72
- package/dist/starknet/swaps/EscrowManagerAbi.d.ts +431 -431
- package/dist/starknet/swaps/EscrowManagerAbi.js +583 -583
- package/dist/starknet/swaps/StarknetSwapContract.d.ts +191 -191
- package/dist/starknet/swaps/StarknetSwapContract.js +424 -424
- package/dist/starknet/swaps/StarknetSwapData.d.ts +74 -74
- package/dist/starknet/swaps/StarknetSwapData.js +325 -325
- package/dist/starknet/swaps/StarknetSwapModule.d.ts +10 -10
- package/dist/starknet/swaps/StarknetSwapModule.js +11 -11
- package/dist/starknet/swaps/handlers/IHandler.d.ts +13 -13
- package/dist/starknet/swaps/handlers/IHandler.js +2 -2
- package/dist/starknet/swaps/handlers/claim/ClaimHandlers.d.ts +13 -13
- package/dist/starknet/swaps/handlers/claim/ClaimHandlers.js +13 -13
- package/dist/starknet/swaps/handlers/claim/HashlockClaimHandler.d.ts +21 -21
- package/dist/starknet/swaps/handlers/claim/HashlockClaimHandler.js +44 -44
- package/dist/starknet/swaps/handlers/claim/btc/BitcoinNoncedOutputClaimHandler.d.ts +24 -24
- package/dist/starknet/swaps/handlers/claim/btc/BitcoinNoncedOutputClaimHandler.js +48 -48
- package/dist/starknet/swaps/handlers/claim/btc/BitcoinOutputClaimHandler.d.ts +25 -25
- package/dist/starknet/swaps/handlers/claim/btc/BitcoinOutputClaimHandler.js +40 -40
- package/dist/starknet/swaps/handlers/claim/btc/BitcoinTxIdClaimHandler.d.ts +20 -20
- package/dist/starknet/swaps/handlers/claim/btc/BitcoinTxIdClaimHandler.js +30 -30
- package/dist/starknet/swaps/handlers/claim/btc/IBitcoinClaimHandler.d.ts +45 -45
- package/dist/starknet/swaps/handlers/claim/btc/IBitcoinClaimHandler.js +52 -52
- package/dist/starknet/swaps/handlers/refund/TimelockRefundHandler.d.ts +17 -17
- package/dist/starknet/swaps/handlers/refund/TimelockRefundHandler.js +27 -27
- package/dist/starknet/swaps/modules/StarknetLpVault.d.ts +69 -69
- package/dist/starknet/swaps/modules/StarknetLpVault.js +122 -122
- package/dist/starknet/swaps/modules/StarknetSwapClaim.d.ts +53 -53
- package/dist/starknet/swaps/modules/StarknetSwapClaim.js +100 -100
- package/dist/starknet/swaps/modules/StarknetSwapInit.d.ts +94 -87
- package/dist/starknet/swaps/modules/StarknetSwapInit.js +235 -225
- package/dist/starknet/swaps/modules/StarknetSwapRefund.d.ts +62 -62
- package/dist/starknet/swaps/modules/StarknetSwapRefund.js +128 -128
- package/dist/starknet/wallet/StarknetKeypairWallet.d.ts +7 -7
- package/dist/starknet/wallet/StarknetKeypairWallet.js +35 -30
- package/dist/starknet/wallet/StarknetSigner.d.ts +12 -12
- package/dist/starknet/wallet/StarknetSigner.js +47 -46
- package/dist/utils/Utils.d.ts +37 -37
- package/dist/utils/Utils.js +260 -261
- package/package.json +43 -37
- package/src/index.ts +47 -47
- package/src/starknet/StarknetChainType.ts +28 -28
- package/src/starknet/StarknetInitializer.ts +108 -108
- package/src/starknet/btcrelay/BtcRelayAbi.ts +338 -338
- package/src/starknet/btcrelay/StarknetBtcRelay.ts +494 -494
- package/src/starknet/btcrelay/headers/StarknetBtcHeader.ts +100 -100
- package/src/starknet/btcrelay/headers/StarknetBtcStoredHeader.ts +141 -141
- package/src/starknet/chain/StarknetAction.ts +85 -85
- package/src/starknet/chain/StarknetChainInterface.ts +149 -149
- package/src/starknet/chain/StarknetModule.ts +19 -19
- package/src/starknet/chain/modules/ERC20Abi.ts +1029 -1029
- package/src/starknet/chain/modules/StarknetAccounts.ts +25 -25
- package/src/starknet/chain/modules/StarknetAddresses.ts +22 -22
- package/src/starknet/chain/modules/StarknetBlocks.ts +75 -74
- package/src/starknet/chain/modules/StarknetEvents.ts +104 -104
- package/src/starknet/chain/modules/StarknetFees.ts +154 -154
- package/src/starknet/chain/modules/StarknetSignatures.ts +91 -91
- package/src/starknet/chain/modules/StarknetTokens.ts +120 -116
- package/src/starknet/chain/modules/StarknetTransactions.ts +285 -283
- package/src/starknet/contract/StarknetContractBase.ts +30 -26
- package/src/starknet/contract/StarknetContractModule.ts +16 -16
- package/src/starknet/contract/modules/StarknetContractEvents.ts +134 -134
- package/src/starknet/events/StarknetChainEvents.ts +67 -67
- package/src/starknet/events/StarknetChainEventsBrowser.ts +411 -411
- package/src/starknet/provider/RpcProviderWithRetries.ts +43 -43
- package/src/starknet/spv_swap/SpvVaultContractAbi.ts +656 -656
- package/src/starknet/spv_swap/StarknetSpvVaultContract.ts +483 -483
- package/src/starknet/spv_swap/StarknetSpvVaultData.ts +195 -195
- package/src/starknet/spv_swap/StarknetSpvWithdrawalData.ts +79 -79
- package/src/starknet/swaps/EscrowManagerAbi.ts +582 -582
- package/src/starknet/swaps/StarknetSwapContract.ts +647 -647
- package/src/starknet/swaps/StarknetSwapData.ts +455 -455
- package/src/starknet/swaps/StarknetSwapModule.ts +17 -17
- package/src/starknet/swaps/handlers/IHandler.ts +20 -20
- package/src/starknet/swaps/handlers/claim/ClaimHandlers.ts +23 -23
- package/src/starknet/swaps/handlers/claim/HashlockClaimHandler.ts +53 -53
- package/src/starknet/swaps/handlers/claim/btc/BitcoinNoncedOutputClaimHandler.ts +73 -73
- package/src/starknet/swaps/handlers/claim/btc/BitcoinOutputClaimHandler.ts +67 -67
- package/src/starknet/swaps/handlers/claim/btc/BitcoinTxIdClaimHandler.ts +50 -50
- package/src/starknet/swaps/handlers/claim/btc/IBitcoinClaimHandler.ts +102 -102
- package/src/starknet/swaps/handlers/refund/TimelockRefundHandler.ts +38 -38
- package/src/starknet/swaps/modules/StarknetLpVault.ts +147 -147
- package/src/starknet/swaps/modules/StarknetSwapClaim.ts +141 -141
- package/src/starknet/swaps/modules/StarknetSwapInit.ts +300 -287
- package/src/starknet/swaps/modules/StarknetSwapRefund.ts +196 -196
- package/src/starknet/wallet/StarknetKeypairWallet.ts +44 -39
- package/src/starknet/wallet/StarknetSigner.ts +55 -55
- package/src/utils/Utils.ts +251 -252
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BitcoinTxIdClaimHandler = void 0;
|
|
4
|
-
const base_1 = require("@atomiqlabs/base");
|
|
5
|
-
const Utils_1 = require("../../../../../utils/Utils");
|
|
6
|
-
const IBitcoinClaimHandler_1 = require("./IBitcoinClaimHandler");
|
|
7
|
-
const buffer_1 = require("buffer");
|
|
8
|
-
const logger = (0, Utils_1.getLogger)("BitcoinTxIdClaimHandler: ");
|
|
9
|
-
class BitcoinTxIdClaimHandler extends IBitcoinClaimHandler_1.IBitcoinClaimHandler {
|
|
10
|
-
serializeCommitment(data) {
|
|
11
|
-
return [
|
|
12
|
-
...(0, Utils_1.bufferToU32Array)(buffer_1.Buffer.from(data.txId, "hex").reverse()),
|
|
13
|
-
...super.serializeCommitment(data)
|
|
14
|
-
];
|
|
15
|
-
}
|
|
16
|
-
getWitness(signer, swapData, witnessData, feeRate) {
|
|
17
|
-
if (!swapData.isClaimHandler(this.address))
|
|
18
|
-
throw new Error("Invalid claim handler");
|
|
19
|
-
return this._getWitness(signer, swapData, witnessData, { txId: witnessData.tx.txid });
|
|
20
|
-
}
|
|
21
|
-
getGas(data) {
|
|
22
|
-
return BitcoinTxIdClaimHandler.gas;
|
|
23
|
-
}
|
|
24
|
-
getType() {
|
|
25
|
-
return BitcoinTxIdClaimHandler.type;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
exports.BitcoinTxIdClaimHandler = BitcoinTxIdClaimHandler;
|
|
29
|
-
BitcoinTxIdClaimHandler.type = base_1.ChainSwapType.CHAIN_TXID;
|
|
30
|
-
BitcoinTxIdClaimHandler.gas = { l1DataGas: 0, l2Gas: 20000 * 40000, l1Gas: 0 };
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BitcoinTxIdClaimHandler = void 0;
|
|
4
|
+
const base_1 = require("@atomiqlabs/base");
|
|
5
|
+
const Utils_1 = require("../../../../../utils/Utils");
|
|
6
|
+
const IBitcoinClaimHandler_1 = require("./IBitcoinClaimHandler");
|
|
7
|
+
const buffer_1 = require("buffer");
|
|
8
|
+
const logger = (0, Utils_1.getLogger)("BitcoinTxIdClaimHandler: ");
|
|
9
|
+
class BitcoinTxIdClaimHandler extends IBitcoinClaimHandler_1.IBitcoinClaimHandler {
|
|
10
|
+
serializeCommitment(data) {
|
|
11
|
+
return [
|
|
12
|
+
...(0, Utils_1.bufferToU32Array)(buffer_1.Buffer.from(data.txId, "hex").reverse()),
|
|
13
|
+
...super.serializeCommitment(data)
|
|
14
|
+
];
|
|
15
|
+
}
|
|
16
|
+
getWitness(signer, swapData, witnessData, feeRate) {
|
|
17
|
+
if (!swapData.isClaimHandler(this.address))
|
|
18
|
+
throw new Error("Invalid claim handler");
|
|
19
|
+
return this._getWitness(signer, swapData, witnessData, { txId: witnessData.tx.txid });
|
|
20
|
+
}
|
|
21
|
+
getGas(data) {
|
|
22
|
+
return BitcoinTxIdClaimHandler.gas;
|
|
23
|
+
}
|
|
24
|
+
getType() {
|
|
25
|
+
return BitcoinTxIdClaimHandler.type;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.BitcoinTxIdClaimHandler = BitcoinTxIdClaimHandler;
|
|
29
|
+
BitcoinTxIdClaimHandler.type = base_1.ChainSwapType.CHAIN_TXID;
|
|
30
|
+
BitcoinTxIdClaimHandler.gas = { l1DataGas: 0, l2Gas: 20000 * 40000, l1Gas: 0 };
|
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
import { IClaimHandler } from "../ClaimHandlers";
|
|
2
|
-
import { StarknetSwapData } from "../../../StarknetSwapData";
|
|
3
|
-
import { ChainSwapType, RelaySynchronizer } from "@atomiqlabs/base";
|
|
4
|
-
import { BigNumberish } from "starknet";
|
|
5
|
-
import { StarknetBtcStoredHeader } from "../../../../btcrelay/headers/StarknetBtcStoredHeader";
|
|
6
|
-
import { StarknetTx } from "../../../../chain/modules/StarknetTransactions";
|
|
7
|
-
import { StarknetBtcRelay } from "../../../../btcrelay/StarknetBtcRelay";
|
|
8
|
-
import { StarknetGas } from "../../../../chain/modules/StarknetFees";
|
|
9
|
-
export type BitcoinCommitmentData = {
|
|
10
|
-
btcRelay: StarknetBtcRelay<any>;
|
|
11
|
-
confirmations: number;
|
|
12
|
-
};
|
|
13
|
-
export type BitcoinWitnessData = {
|
|
14
|
-
tx: {
|
|
15
|
-
blockhash: string;
|
|
16
|
-
confirmations: number;
|
|
17
|
-
txid: string;
|
|
18
|
-
hex: string;
|
|
19
|
-
height: number;
|
|
20
|
-
};
|
|
21
|
-
requiredConfirmations: number;
|
|
22
|
-
commitedHeader?: StarknetBtcStoredHeader;
|
|
23
|
-
btcRelay?: StarknetBtcRelay<any>;
|
|
24
|
-
synchronizer?: RelaySynchronizer<StarknetBtcStoredHeader, StarknetTx, any>;
|
|
25
|
-
};
|
|
26
|
-
export declare abstract class IBitcoinClaimHandler<C, W extends BitcoinWitnessData> implements IClaimHandler<C & BitcoinCommitmentData, W> {
|
|
27
|
-
readonly address: string;
|
|
28
|
-
constructor(address: string);
|
|
29
|
-
static readonly address = "";
|
|
30
|
-
static readonly type: ChainSwapType;
|
|
31
|
-
static readonly gas: StarknetGas;
|
|
32
|
-
protected serializeCommitment(data: BitcoinCommitmentData): BigNumberish[];
|
|
33
|
-
getCommitment(data: C & BitcoinCommitmentData): BigNumberish;
|
|
34
|
-
protected _getWitness(signer: string, swapData: StarknetSwapData, { tx, btcRelay, commitedHeader, synchronizer, requiredConfirmations }: BitcoinWitnessData, commitment: C, feeRate?: string): Promise<{
|
|
35
|
-
initialTxns: StarknetTx[];
|
|
36
|
-
witness: BigNumberish[];
|
|
37
|
-
}>;
|
|
38
|
-
abstract getWitness(signer: string, data: StarknetSwapData, witnessData: W, feeRate?: string): Promise<{
|
|
39
|
-
initialTxns: StarknetTx[];
|
|
40
|
-
witness: BigNumberish[];
|
|
41
|
-
}>;
|
|
42
|
-
abstract getGas(data: StarknetSwapData): StarknetGas;
|
|
43
|
-
abstract getType(): ChainSwapType;
|
|
44
|
-
parseWitnessResult(result: BigNumberish[]): string;
|
|
45
|
-
}
|
|
1
|
+
import { IClaimHandler } from "../ClaimHandlers";
|
|
2
|
+
import { StarknetSwapData } from "../../../StarknetSwapData";
|
|
3
|
+
import { ChainSwapType, RelaySynchronizer } from "@atomiqlabs/base";
|
|
4
|
+
import { BigNumberish } from "starknet";
|
|
5
|
+
import { StarknetBtcStoredHeader } from "../../../../btcrelay/headers/StarknetBtcStoredHeader";
|
|
6
|
+
import { StarknetTx } from "../../../../chain/modules/StarknetTransactions";
|
|
7
|
+
import { StarknetBtcRelay } from "../../../../btcrelay/StarknetBtcRelay";
|
|
8
|
+
import { StarknetGas } from "../../../../chain/modules/StarknetFees";
|
|
9
|
+
export type BitcoinCommitmentData = {
|
|
10
|
+
btcRelay: StarknetBtcRelay<any>;
|
|
11
|
+
confirmations: number;
|
|
12
|
+
};
|
|
13
|
+
export type BitcoinWitnessData = {
|
|
14
|
+
tx: {
|
|
15
|
+
blockhash: string;
|
|
16
|
+
confirmations: number;
|
|
17
|
+
txid: string;
|
|
18
|
+
hex: string;
|
|
19
|
+
height: number;
|
|
20
|
+
};
|
|
21
|
+
requiredConfirmations: number;
|
|
22
|
+
commitedHeader?: StarknetBtcStoredHeader;
|
|
23
|
+
btcRelay?: StarknetBtcRelay<any>;
|
|
24
|
+
synchronizer?: RelaySynchronizer<StarknetBtcStoredHeader, StarknetTx, any>;
|
|
25
|
+
};
|
|
26
|
+
export declare abstract class IBitcoinClaimHandler<C, W extends BitcoinWitnessData> implements IClaimHandler<C & BitcoinCommitmentData, W> {
|
|
27
|
+
readonly address: string;
|
|
28
|
+
constructor(address: string);
|
|
29
|
+
static readonly address = "";
|
|
30
|
+
static readonly type: ChainSwapType;
|
|
31
|
+
static readonly gas: StarknetGas;
|
|
32
|
+
protected serializeCommitment(data: BitcoinCommitmentData): BigNumberish[];
|
|
33
|
+
getCommitment(data: C & BitcoinCommitmentData): BigNumberish;
|
|
34
|
+
protected _getWitness(signer: string, swapData: StarknetSwapData, { tx, btcRelay, commitedHeader, synchronizer, requiredConfirmations }: BitcoinWitnessData, commitment: C, feeRate?: string): Promise<{
|
|
35
|
+
initialTxns: StarknetTx[];
|
|
36
|
+
witness: BigNumberish[];
|
|
37
|
+
}>;
|
|
38
|
+
abstract getWitness(signer: string, data: StarknetSwapData, witnessData: W, feeRate?: string): Promise<{
|
|
39
|
+
initialTxns: StarknetTx[];
|
|
40
|
+
witness: BigNumberish[];
|
|
41
|
+
}>;
|
|
42
|
+
abstract getGas(data: StarknetSwapData): StarknetGas;
|
|
43
|
+
abstract getType(): ChainSwapType;
|
|
44
|
+
parseWitnessResult(result: BigNumberish[]): string;
|
|
45
|
+
}
|
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.IBitcoinClaimHandler = void 0;
|
|
4
|
-
const base_1 = require("@atomiqlabs/base");
|
|
5
|
-
const starknet_1 = require("starknet");
|
|
6
|
-
const StarknetBtcRelay_1 = require("../../../../btcrelay/StarknetBtcRelay");
|
|
7
|
-
const Utils_1 = require("../../../../../utils/Utils");
|
|
8
|
-
const logger = (0, Utils_1.getLogger)("IBitcoinClaimHandler: ");
|
|
9
|
-
class IBitcoinClaimHandler {
|
|
10
|
-
constructor(address) {
|
|
11
|
-
this.address = address;
|
|
12
|
-
}
|
|
13
|
-
serializeCommitment(data) {
|
|
14
|
-
return [
|
|
15
|
-
data.confirmations,
|
|
16
|
-
data.btcRelay.contract.address
|
|
17
|
-
];
|
|
18
|
-
}
|
|
19
|
-
getCommitment(data) {
|
|
20
|
-
return starknet_1.hash.computePoseidonHashOnElements(this.serializeCommitment(data));
|
|
21
|
-
}
|
|
22
|
-
async _getWitness(signer, swapData, { tx, btcRelay, commitedHeader, synchronizer, requiredConfirmations }, commitment, feeRate) {
|
|
23
|
-
const serializedData = this.serializeCommitment({
|
|
24
|
-
...commitment,
|
|
25
|
-
btcRelay,
|
|
26
|
-
confirmations: requiredConfirmations
|
|
27
|
-
});
|
|
28
|
-
const commitmentHash = starknet_1.hash.computePoseidonHashOnElements(serializedData);
|
|
29
|
-
if (!swapData.isClaimData(commitmentHash))
|
|
30
|
-
throw new Error("Invalid commit data");
|
|
31
|
-
const merkleProof = await btcRelay.bitcoinRpc.getMerkleProof(tx.txid, tx.blockhash);
|
|
32
|
-
logger.debug("getWitness(): merkle proof computed: ", merkleProof);
|
|
33
|
-
const txs = [];
|
|
34
|
-
if (commitedHeader == null) {
|
|
35
|
-
const headers = await StarknetBtcRelay_1.StarknetBtcRelay.getCommitedHeadersAndSynchronize(signer, btcRelay, [{ blockheight: tx.height, requiredConfirmations, blockhash: tx.blockhash }], txs, synchronizer, feeRate);
|
|
36
|
-
if (headers == null)
|
|
37
|
-
throw new Error("Cannot fetch committed header!");
|
|
38
|
-
commitedHeader = headers[tx.blockhash];
|
|
39
|
-
}
|
|
40
|
-
serializedData.push(...commitedHeader.serialize());
|
|
41
|
-
serializedData.push(merkleProof.merkle.length, ...merkleProof.merkle.map(Utils_1.bufferToU32Array).flat());
|
|
42
|
-
serializedData.push(merkleProof.pos);
|
|
43
|
-
return { initialTxns: txs, witness: serializedData };
|
|
44
|
-
}
|
|
45
|
-
parseWitnessResult(result) {
|
|
46
|
-
return (0, Utils_1.u32ArrayToBuffer)(result).toString("hex");
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
exports.IBitcoinClaimHandler = IBitcoinClaimHandler;
|
|
50
|
-
IBitcoinClaimHandler.address = "";
|
|
51
|
-
IBitcoinClaimHandler.type = base_1.ChainSwapType.CHAIN_TXID;
|
|
52
|
-
IBitcoinClaimHandler.gas = { l1DataGas: 0, l2Gas: 20000 * 40000, l1Gas: 0 };
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IBitcoinClaimHandler = void 0;
|
|
4
|
+
const base_1 = require("@atomiqlabs/base");
|
|
5
|
+
const starknet_1 = require("starknet");
|
|
6
|
+
const StarknetBtcRelay_1 = require("../../../../btcrelay/StarknetBtcRelay");
|
|
7
|
+
const Utils_1 = require("../../../../../utils/Utils");
|
|
8
|
+
const logger = (0, Utils_1.getLogger)("IBitcoinClaimHandler: ");
|
|
9
|
+
class IBitcoinClaimHandler {
|
|
10
|
+
constructor(address) {
|
|
11
|
+
this.address = address;
|
|
12
|
+
}
|
|
13
|
+
serializeCommitment(data) {
|
|
14
|
+
return [
|
|
15
|
+
data.confirmations,
|
|
16
|
+
data.btcRelay.contract.address
|
|
17
|
+
];
|
|
18
|
+
}
|
|
19
|
+
getCommitment(data) {
|
|
20
|
+
return starknet_1.hash.computePoseidonHashOnElements(this.serializeCommitment(data));
|
|
21
|
+
}
|
|
22
|
+
async _getWitness(signer, swapData, { tx, btcRelay, commitedHeader, synchronizer, requiredConfirmations }, commitment, feeRate) {
|
|
23
|
+
const serializedData = this.serializeCommitment({
|
|
24
|
+
...commitment,
|
|
25
|
+
btcRelay,
|
|
26
|
+
confirmations: requiredConfirmations
|
|
27
|
+
});
|
|
28
|
+
const commitmentHash = starknet_1.hash.computePoseidonHashOnElements(serializedData);
|
|
29
|
+
if (!swapData.isClaimData(commitmentHash))
|
|
30
|
+
throw new Error("Invalid commit data");
|
|
31
|
+
const merkleProof = await btcRelay.bitcoinRpc.getMerkleProof(tx.txid, tx.blockhash);
|
|
32
|
+
logger.debug("getWitness(): merkle proof computed: ", merkleProof);
|
|
33
|
+
const txs = [];
|
|
34
|
+
if (commitedHeader == null) {
|
|
35
|
+
const headers = await StarknetBtcRelay_1.StarknetBtcRelay.getCommitedHeadersAndSynchronize(signer, btcRelay, [{ blockheight: tx.height, requiredConfirmations, blockhash: tx.blockhash }], txs, synchronizer, feeRate);
|
|
36
|
+
if (headers == null)
|
|
37
|
+
throw new Error("Cannot fetch committed header!");
|
|
38
|
+
commitedHeader = headers[tx.blockhash];
|
|
39
|
+
}
|
|
40
|
+
serializedData.push(...commitedHeader.serialize());
|
|
41
|
+
serializedData.push(merkleProof.merkle.length, ...merkleProof.merkle.map(Utils_1.bufferToU32Array).flat());
|
|
42
|
+
serializedData.push(merkleProof.pos);
|
|
43
|
+
return { initialTxns: txs, witness: serializedData };
|
|
44
|
+
}
|
|
45
|
+
parseWitnessResult(result) {
|
|
46
|
+
return (0, Utils_1.u32ArrayToBuffer)(result).toString("hex");
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.IBitcoinClaimHandler = IBitcoinClaimHandler;
|
|
50
|
+
IBitcoinClaimHandler.address = "";
|
|
51
|
+
IBitcoinClaimHandler.type = base_1.ChainSwapType.CHAIN_TXID;
|
|
52
|
+
IBitcoinClaimHandler.gas = { l1DataGas: 0, l2Gas: 20000 * 40000, l1Gas: 0 };
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { StarknetTx } from "../../../chain/modules/StarknetTransactions";
|
|
2
|
-
import { StarknetSwapData } from "../../StarknetSwapData";
|
|
3
|
-
import { BigNumberish } from "starknet";
|
|
4
|
-
import { IHandler } from "../IHandler";
|
|
5
|
-
import { StarknetGas } from "../../../chain/modules/StarknetFees";
|
|
6
|
-
export declare class TimelockRefundHandler implements IHandler<bigint, never> {
|
|
7
|
-
readonly address: string;
|
|
8
|
-
static readonly gas: StarknetGas;
|
|
9
|
-
constructor(address: string);
|
|
10
|
-
getCommitment(data: bigint): BigNumberish;
|
|
11
|
-
getWitness(signer: string, data: StarknetSwapData): Promise<{
|
|
12
|
-
initialTxns: StarknetTx[];
|
|
13
|
-
witness: BigNumberish[];
|
|
14
|
-
}>;
|
|
15
|
-
getGas(): StarknetGas;
|
|
16
|
-
static getExpiry(data: StarknetSwapData): bigint;
|
|
17
|
-
}
|
|
1
|
+
import { StarknetTx } from "../../../chain/modules/StarknetTransactions";
|
|
2
|
+
import { StarknetSwapData } from "../../StarknetSwapData";
|
|
3
|
+
import { BigNumberish } from "starknet";
|
|
4
|
+
import { IHandler } from "../IHandler";
|
|
5
|
+
import { StarknetGas } from "../../../chain/modules/StarknetFees";
|
|
6
|
+
export declare class TimelockRefundHandler implements IHandler<bigint, never> {
|
|
7
|
+
readonly address: string;
|
|
8
|
+
static readonly gas: StarknetGas;
|
|
9
|
+
constructor(address: string);
|
|
10
|
+
getCommitment(data: bigint): BigNumberish;
|
|
11
|
+
getWitness(signer: string, data: StarknetSwapData): Promise<{
|
|
12
|
+
initialTxns: StarknetTx[];
|
|
13
|
+
witness: BigNumberish[];
|
|
14
|
+
}>;
|
|
15
|
+
getGas(): StarknetGas;
|
|
16
|
+
static getExpiry(data: StarknetSwapData): bigint;
|
|
17
|
+
}
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TimelockRefundHandler = void 0;
|
|
4
|
-
const Utils_1 = require("../../../../utils/Utils");
|
|
5
|
-
class TimelockRefundHandler {
|
|
6
|
-
constructor(address) {
|
|
7
|
-
this.address = address;
|
|
8
|
-
}
|
|
9
|
-
getCommitment(data) {
|
|
10
|
-
return data;
|
|
11
|
-
}
|
|
12
|
-
getWitness(signer, data) {
|
|
13
|
-
const expiry = TimelockRefundHandler.getExpiry(data);
|
|
14
|
-
const currentTimestamp = BigInt(Math.floor(Date.now() / 1000));
|
|
15
|
-
if (expiry > currentTimestamp)
|
|
16
|
-
throw new Error("Not expired yet!");
|
|
17
|
-
return Promise.resolve({ initialTxns: [], witness: [] });
|
|
18
|
-
}
|
|
19
|
-
getGas() {
|
|
20
|
-
return TimelockRefundHandler.gas;
|
|
21
|
-
}
|
|
22
|
-
static getExpiry(data) {
|
|
23
|
-
return (0, Utils_1.bigNumberishToBuffer)(data.refundData, 32).readBigUInt64BE(24).valueOf();
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
exports.TimelockRefundHandler = TimelockRefundHandler;
|
|
27
|
-
TimelockRefundHandler.gas = { l1DataGas: 0, l2Gas: 4000000, l1Gas: 0 };
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TimelockRefundHandler = void 0;
|
|
4
|
+
const Utils_1 = require("../../../../utils/Utils");
|
|
5
|
+
class TimelockRefundHandler {
|
|
6
|
+
constructor(address) {
|
|
7
|
+
this.address = address;
|
|
8
|
+
}
|
|
9
|
+
getCommitment(data) {
|
|
10
|
+
return data;
|
|
11
|
+
}
|
|
12
|
+
getWitness(signer, data) {
|
|
13
|
+
const expiry = TimelockRefundHandler.getExpiry(data);
|
|
14
|
+
const currentTimestamp = BigInt(Math.floor(Date.now() / 1000));
|
|
15
|
+
if (expiry > currentTimestamp)
|
|
16
|
+
throw new Error("Not expired yet!");
|
|
17
|
+
return Promise.resolve({ initialTxns: [], witness: [] });
|
|
18
|
+
}
|
|
19
|
+
getGas() {
|
|
20
|
+
return TimelockRefundHandler.gas;
|
|
21
|
+
}
|
|
22
|
+
static getExpiry(data) {
|
|
23
|
+
return (0, Utils_1.bigNumberishToBuffer)(data.refundData, 32).readBigUInt64BE(24).valueOf();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.TimelockRefundHandler = TimelockRefundHandler;
|
|
27
|
+
TimelockRefundHandler.gas = { l1DataGas: 0, l2Gas: 4000000, l1Gas: 0 };
|
|
@@ -1,69 +1,69 @@
|
|
|
1
|
-
import { IntermediaryReputationType } from "@atomiqlabs/base";
|
|
2
|
-
import { StarknetSwapModule } from "../StarknetSwapModule";
|
|
3
|
-
import { StarknetTx } from "../../chain/modules/StarknetTransactions";
|
|
4
|
-
export declare class StarknetLpVault extends StarknetSwapModule {
|
|
5
|
-
private static readonly GasCosts;
|
|
6
|
-
/**
|
|
7
|
-
* Action for withdrawing funds from the LP vault
|
|
8
|
-
*
|
|
9
|
-
* @param signer
|
|
10
|
-
* @param token
|
|
11
|
-
* @param amount
|
|
12
|
-
* @constructor
|
|
13
|
-
* @private
|
|
14
|
-
*/
|
|
15
|
-
private Withdraw;
|
|
16
|
-
/**
|
|
17
|
-
* Action for depositing funds to the LP vault
|
|
18
|
-
*
|
|
19
|
-
* @param signer
|
|
20
|
-
* @param token
|
|
21
|
-
* @param amount
|
|
22
|
-
* @constructor
|
|
23
|
-
* @private
|
|
24
|
-
*/
|
|
25
|
-
private Deposit;
|
|
26
|
-
/**
|
|
27
|
-
* Returns intermediary's reputation & vault balance for a specific token
|
|
28
|
-
*
|
|
29
|
-
* @param address
|
|
30
|
-
* @param token
|
|
31
|
-
*/
|
|
32
|
-
getIntermediaryData(address: string, token: string): Promise<{
|
|
33
|
-
balance: bigint;
|
|
34
|
-
reputation: IntermediaryReputationType;
|
|
35
|
-
}>;
|
|
36
|
-
/**
|
|
37
|
-
* Returns intermediary's reputation for a specific token
|
|
38
|
-
*
|
|
39
|
-
* @param address
|
|
40
|
-
* @param token
|
|
41
|
-
*/
|
|
42
|
-
getIntermediaryReputation(address: string, token: string): Promise<IntermediaryReputationType>;
|
|
43
|
-
/**
|
|
44
|
-
* Returns the balance of the token an intermediary has in his LP vault
|
|
45
|
-
*
|
|
46
|
-
* @param address
|
|
47
|
-
* @param token
|
|
48
|
-
*/
|
|
49
|
-
getIntermediaryBalance(address: string, token: string): Promise<bigint>;
|
|
50
|
-
/**
|
|
51
|
-
* Creates transactions for withdrawing funds from the LP vault, creates ATA if it doesn't exist and unwraps
|
|
52
|
-
* WSOL to SOL if required
|
|
53
|
-
*
|
|
54
|
-
* @param signer
|
|
55
|
-
* @param token
|
|
56
|
-
* @param amount
|
|
57
|
-
* @param feeRate
|
|
58
|
-
*/
|
|
59
|
-
txsWithdraw(signer: string, token: string, amount: bigint, feeRate?: string): Promise<StarknetTx[]>;
|
|
60
|
-
/**
|
|
61
|
-
* Creates transaction for depositing funds into the LP vault, wraps SOL to WSOL if required
|
|
62
|
-
*
|
|
63
|
-
* @param signer
|
|
64
|
-
* @param token
|
|
65
|
-
* @param amount
|
|
66
|
-
* @param feeRate
|
|
67
|
-
*/
|
|
68
|
-
txsDeposit(signer: string, token: string, amount: bigint, feeRate?: string): Promise<StarknetTx[]>;
|
|
69
|
-
}
|
|
1
|
+
import { IntermediaryReputationType } from "@atomiqlabs/base";
|
|
2
|
+
import { StarknetSwapModule } from "../StarknetSwapModule";
|
|
3
|
+
import { StarknetTx } from "../../chain/modules/StarknetTransactions";
|
|
4
|
+
export declare class StarknetLpVault extends StarknetSwapModule {
|
|
5
|
+
private static readonly GasCosts;
|
|
6
|
+
/**
|
|
7
|
+
* Action for withdrawing funds from the LP vault
|
|
8
|
+
*
|
|
9
|
+
* @param signer
|
|
10
|
+
* @param token
|
|
11
|
+
* @param amount
|
|
12
|
+
* @constructor
|
|
13
|
+
* @private
|
|
14
|
+
*/
|
|
15
|
+
private Withdraw;
|
|
16
|
+
/**
|
|
17
|
+
* Action for depositing funds to the LP vault
|
|
18
|
+
*
|
|
19
|
+
* @param signer
|
|
20
|
+
* @param token
|
|
21
|
+
* @param amount
|
|
22
|
+
* @constructor
|
|
23
|
+
* @private
|
|
24
|
+
*/
|
|
25
|
+
private Deposit;
|
|
26
|
+
/**
|
|
27
|
+
* Returns intermediary's reputation & vault balance for a specific token
|
|
28
|
+
*
|
|
29
|
+
* @param address
|
|
30
|
+
* @param token
|
|
31
|
+
*/
|
|
32
|
+
getIntermediaryData(address: string, token: string): Promise<{
|
|
33
|
+
balance: bigint;
|
|
34
|
+
reputation: IntermediaryReputationType;
|
|
35
|
+
}>;
|
|
36
|
+
/**
|
|
37
|
+
* Returns intermediary's reputation for a specific token
|
|
38
|
+
*
|
|
39
|
+
* @param address
|
|
40
|
+
* @param token
|
|
41
|
+
*/
|
|
42
|
+
getIntermediaryReputation(address: string, token: string): Promise<IntermediaryReputationType>;
|
|
43
|
+
/**
|
|
44
|
+
* Returns the balance of the token an intermediary has in his LP vault
|
|
45
|
+
*
|
|
46
|
+
* @param address
|
|
47
|
+
* @param token
|
|
48
|
+
*/
|
|
49
|
+
getIntermediaryBalance(address: string, token: string): Promise<bigint>;
|
|
50
|
+
/**
|
|
51
|
+
* Creates transactions for withdrawing funds from the LP vault, creates ATA if it doesn't exist and unwraps
|
|
52
|
+
* WSOL to SOL if required
|
|
53
|
+
*
|
|
54
|
+
* @param signer
|
|
55
|
+
* @param token
|
|
56
|
+
* @param amount
|
|
57
|
+
* @param feeRate
|
|
58
|
+
*/
|
|
59
|
+
txsWithdraw(signer: string, token: string, amount: bigint, feeRate?: string): Promise<StarknetTx[]>;
|
|
60
|
+
/**
|
|
61
|
+
* Creates transaction for depositing funds into the LP vault, wraps SOL to WSOL if required
|
|
62
|
+
*
|
|
63
|
+
* @param signer
|
|
64
|
+
* @param token
|
|
65
|
+
* @param amount
|
|
66
|
+
* @param feeRate
|
|
67
|
+
*/
|
|
68
|
+
txsDeposit(signer: string, token: string, amount: bigint, feeRate?: string): Promise<StarknetTx[]>;
|
|
69
|
+
}
|