@atomiqlabs/chain-evm 1.0.0-dev.38 → 1.0.0-dev.40

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.
Files changed (167) hide show
  1. package/LICENSE +201 -201
  2. package/dist/chains/botanix/BotanixChainType.d.ts +13 -0
  3. package/dist/chains/botanix/BotanixChainType.js +2 -0
  4. package/dist/chains/botanix/BotanixInitializer.d.ts +30 -0
  5. package/dist/chains/botanix/BotanixInitializer.js +117 -0
  6. package/dist/chains/citrea/CitreaBtcRelay.d.ts +21 -21
  7. package/dist/chains/citrea/CitreaBtcRelay.js +43 -43
  8. package/dist/chains/citrea/CitreaChainType.d.ts +13 -13
  9. package/dist/chains/citrea/CitreaChainType.js +2 -2
  10. package/dist/chains/citrea/CitreaFees.d.ts +29 -29
  11. package/dist/chains/citrea/CitreaFees.js +67 -67
  12. package/dist/chains/citrea/CitreaInitializer.d.ts +30 -30
  13. package/dist/chains/citrea/CitreaInitializer.js +127 -127
  14. package/dist/chains/citrea/CitreaSpvVaultContract.d.ts +15 -15
  15. package/dist/chains/citrea/CitreaSpvVaultContract.js +74 -74
  16. package/dist/chains/citrea/CitreaSwapContract.d.ts +22 -22
  17. package/dist/chains/citrea/CitreaSwapContract.js +96 -96
  18. package/dist/chains/citrea/CitreaTokens.d.ts +9 -9
  19. package/dist/chains/citrea/CitreaTokens.js +20 -20
  20. package/dist/evm/btcrelay/BtcRelayAbi.d.ts +198 -198
  21. package/dist/evm/btcrelay/BtcRelayAbi.js +261 -261
  22. package/dist/evm/btcrelay/BtcRelayTypechain.d.ts +172 -172
  23. package/dist/evm/btcrelay/BtcRelayTypechain.js +2 -2
  24. package/dist/evm/btcrelay/EVMBtcRelay.d.ts +195 -195
  25. package/dist/evm/btcrelay/EVMBtcRelay.js +423 -423
  26. package/dist/evm/btcrelay/headers/EVMBtcHeader.d.ts +33 -33
  27. package/dist/evm/btcrelay/headers/EVMBtcHeader.js +84 -84
  28. package/dist/evm/btcrelay/headers/EVMBtcStoredHeader.d.ts +56 -56
  29. package/dist/evm/btcrelay/headers/EVMBtcStoredHeader.js +123 -123
  30. package/dist/evm/chain/EVMChainInterface.d.ts +51 -51
  31. package/dist/evm/chain/EVMChainInterface.js +89 -89
  32. package/dist/evm/chain/EVMModule.d.ts +9 -9
  33. package/dist/evm/chain/EVMModule.js +13 -13
  34. package/dist/evm/chain/modules/ERC20Abi.d.ts +168 -168
  35. package/dist/evm/chain/modules/ERC20Abi.js +225 -225
  36. package/dist/evm/chain/modules/EVMAddresses.d.ts +10 -10
  37. package/dist/evm/chain/modules/EVMAddresses.js +30 -30
  38. package/dist/evm/chain/modules/EVMBlocks.d.ts +20 -20
  39. package/dist/evm/chain/modules/EVMBlocks.js +64 -64
  40. package/dist/evm/chain/modules/EVMEvents.d.ts +36 -36
  41. package/dist/evm/chain/modules/EVMEvents.js +122 -122
  42. package/dist/evm/chain/modules/EVMFees.d.ts +36 -36
  43. package/dist/evm/chain/modules/EVMFees.js +73 -73
  44. package/dist/evm/chain/modules/EVMSignatures.d.ts +29 -29
  45. package/dist/evm/chain/modules/EVMSignatures.js +68 -68
  46. package/dist/evm/chain/modules/EVMTokens.d.ts +70 -70
  47. package/dist/evm/chain/modules/EVMTokens.js +142 -142
  48. package/dist/evm/chain/modules/EVMTransactions.d.ts +89 -89
  49. package/dist/evm/chain/modules/EVMTransactions.js +230 -230
  50. package/dist/evm/contract/EVMContractBase.d.ts +22 -22
  51. package/dist/evm/contract/EVMContractBase.js +34 -34
  52. package/dist/evm/contract/EVMContractModule.d.ts +8 -8
  53. package/dist/evm/contract/EVMContractModule.js +11 -11
  54. package/dist/evm/contract/modules/EVMContractEvents.d.ts +42 -42
  55. package/dist/evm/contract/modules/EVMContractEvents.js +75 -75
  56. package/dist/evm/events/EVMChainEvents.d.ts +22 -22
  57. package/dist/evm/events/EVMChainEvents.js +67 -67
  58. package/dist/evm/events/EVMChainEventsBrowser.d.ts +86 -86
  59. package/dist/evm/events/EVMChainEventsBrowser.js +294 -294
  60. package/dist/evm/spv_swap/EVMSpvVaultContract.d.ts +78 -78
  61. package/dist/evm/spv_swap/EVMSpvVaultContract.js +478 -478
  62. package/dist/evm/spv_swap/EVMSpvVaultData.d.ts +39 -39
  63. package/dist/evm/spv_swap/EVMSpvVaultData.js +180 -180
  64. package/dist/evm/spv_swap/EVMSpvWithdrawalData.d.ts +19 -19
  65. package/dist/evm/spv_swap/EVMSpvWithdrawalData.js +55 -55
  66. package/dist/evm/spv_swap/SpvVaultContractAbi.d.ts +91 -91
  67. package/dist/evm/spv_swap/SpvVaultContractAbi.js +849 -849
  68. package/dist/evm/spv_swap/SpvVaultContractTypechain.d.ts +450 -450
  69. package/dist/evm/spv_swap/SpvVaultContractTypechain.js +2 -2
  70. package/dist/evm/swaps/EVMSwapContract.d.ts +193 -193
  71. package/dist/evm/swaps/EVMSwapContract.js +378 -378
  72. package/dist/evm/swaps/EVMSwapData.d.ts +66 -66
  73. package/dist/evm/swaps/EVMSwapData.js +260 -260
  74. package/dist/evm/swaps/EVMSwapModule.d.ts +9 -9
  75. package/dist/evm/swaps/EVMSwapModule.js +11 -11
  76. package/dist/evm/swaps/EscrowManagerAbi.d.ts +120 -120
  77. package/dist/evm/swaps/EscrowManagerAbi.js +985 -985
  78. package/dist/evm/swaps/EscrowManagerTypechain.d.ts +475 -475
  79. package/dist/evm/swaps/EscrowManagerTypechain.js +2 -2
  80. package/dist/evm/swaps/handlers/IHandler.d.ts +13 -13
  81. package/dist/evm/swaps/handlers/IHandler.js +2 -2
  82. package/dist/evm/swaps/handlers/claim/ClaimHandlers.d.ts +10 -10
  83. package/dist/evm/swaps/handlers/claim/ClaimHandlers.js +13 -13
  84. package/dist/evm/swaps/handlers/claim/HashlockClaimHandler.d.ts +20 -20
  85. package/dist/evm/swaps/handlers/claim/HashlockClaimHandler.js +39 -39
  86. package/dist/evm/swaps/handlers/claim/btc/BitcoinNoncedOutputClaimHandler.d.ts +24 -24
  87. package/dist/evm/swaps/handlers/claim/btc/BitcoinNoncedOutputClaimHandler.js +59 -59
  88. package/dist/evm/swaps/handlers/claim/btc/BitcoinOutputClaimHandler.d.ts +25 -25
  89. package/dist/evm/swaps/handlers/claim/btc/BitcoinOutputClaimHandler.js +51 -51
  90. package/dist/evm/swaps/handlers/claim/btc/BitcoinTxIdClaimHandler.d.ts +21 -21
  91. package/dist/evm/swaps/handlers/claim/btc/BitcoinTxIdClaimHandler.js +28 -28
  92. package/dist/evm/swaps/handlers/claim/btc/IBitcoinClaimHandler.d.ts +48 -48
  93. package/dist/evm/swaps/handlers/claim/btc/IBitcoinClaimHandler.js +63 -63
  94. package/dist/evm/swaps/handlers/refund/TimelockRefundHandler.d.ts +17 -17
  95. package/dist/evm/swaps/handlers/refund/TimelockRefundHandler.js +28 -28
  96. package/dist/evm/swaps/modules/EVMLpVault.d.ts +69 -69
  97. package/dist/evm/swaps/modules/EVMLpVault.js +134 -134
  98. package/dist/evm/swaps/modules/EVMSwapClaim.d.ts +54 -54
  99. package/dist/evm/swaps/modules/EVMSwapClaim.js +137 -137
  100. package/dist/evm/swaps/modules/EVMSwapInit.d.ts +88 -88
  101. package/dist/evm/swaps/modules/EVMSwapInit.js +274 -274
  102. package/dist/evm/swaps/modules/EVMSwapRefund.d.ts +62 -62
  103. package/dist/evm/swaps/modules/EVMSwapRefund.js +167 -167
  104. package/dist/evm/typechain/common.d.ts +50 -50
  105. package/dist/evm/typechain/common.js +2 -2
  106. package/dist/evm/wallet/EVMSigner.d.ts +10 -10
  107. package/dist/evm/wallet/EVMSigner.js +17 -17
  108. package/dist/index.d.ts +40 -38
  109. package/dist/index.js +56 -54
  110. package/dist/utils/Utils.d.ts +15 -15
  111. package/dist/utils/Utils.js +71 -71
  112. package/package.json +37 -37
  113. package/src/chains/botanix/BotanixChainType.ts +28 -0
  114. package/src/chains/botanix/BotanixInitializer.ts +164 -0
  115. package/src/chains/citrea/CitreaBtcRelay.ts +57 -57
  116. package/src/chains/citrea/CitreaChainType.ts +28 -28
  117. package/src/chains/citrea/CitreaFees.ts +77 -77
  118. package/src/chains/citrea/CitreaInitializer.ts +178 -178
  119. package/src/chains/citrea/CitreaSpvVaultContract.ts +75 -75
  120. package/src/chains/citrea/CitreaSwapContract.ts +102 -102
  121. package/src/chains/citrea/CitreaTokens.ts +21 -21
  122. package/src/evm/btcrelay/BtcRelayAbi.ts +258 -258
  123. package/src/evm/btcrelay/BtcRelayTypechain.ts +371 -371
  124. package/src/evm/btcrelay/EVMBtcRelay.ts +522 -522
  125. package/src/evm/btcrelay/headers/EVMBtcHeader.ts +109 -109
  126. package/src/evm/btcrelay/headers/EVMBtcStoredHeader.ts +152 -152
  127. package/src/evm/chain/EVMChainInterface.ts +155 -155
  128. package/src/evm/chain/EVMModule.ts +21 -21
  129. package/src/evm/chain/modules/ERC20Abi.ts +222 -222
  130. package/src/evm/chain/modules/EVMAddresses.ts +28 -28
  131. package/src/evm/chain/modules/EVMBlocks.ts +75 -75
  132. package/src/evm/chain/modules/EVMEvents.ts +139 -139
  133. package/src/evm/chain/modules/EVMFees.ts +104 -104
  134. package/src/evm/chain/modules/EVMSignatures.ts +76 -76
  135. package/src/evm/chain/modules/EVMTokens.ts +155 -155
  136. package/src/evm/chain/modules/EVMTransactions.ts +257 -257
  137. package/src/evm/contract/EVMContractBase.ts +63 -63
  138. package/src/evm/contract/EVMContractModule.ts +16 -16
  139. package/src/evm/contract/modules/EVMContractEvents.ts +102 -102
  140. package/src/evm/events/EVMChainEvents.ts +81 -81
  141. package/src/evm/events/EVMChainEventsBrowser.ts +390 -390
  142. package/src/evm/spv_swap/EVMSpvVaultContract.ts +608 -608
  143. package/src/evm/spv_swap/EVMSpvVaultData.ts +224 -224
  144. package/src/evm/spv_swap/EVMSpvWithdrawalData.ts +70 -70
  145. package/src/evm/spv_swap/SpvVaultContractAbi.ts +846 -846
  146. package/src/evm/spv_swap/SpvVaultContractTypechain.ts +685 -685
  147. package/src/evm/swaps/EVMSwapContract.ts +600 -600
  148. package/src/evm/swaps/EVMSwapData.ts +378 -378
  149. package/src/evm/swaps/EVMSwapModule.ts +16 -16
  150. package/src/evm/swaps/EscrowManagerAbi.ts +982 -982
  151. package/src/evm/swaps/EscrowManagerTypechain.ts +723 -723
  152. package/src/evm/swaps/handlers/IHandler.ts +17 -17
  153. package/src/evm/swaps/handlers/claim/ClaimHandlers.ts +20 -20
  154. package/src/evm/swaps/handlers/claim/HashlockClaimHandler.ts +46 -46
  155. package/src/evm/swaps/handlers/claim/btc/BitcoinNoncedOutputClaimHandler.ts +82 -82
  156. package/src/evm/swaps/handlers/claim/btc/BitcoinOutputClaimHandler.ts +76 -76
  157. package/src/evm/swaps/handlers/claim/btc/BitcoinTxIdClaimHandler.ts +46 -46
  158. package/src/evm/swaps/handlers/claim/btc/IBitcoinClaimHandler.ts +115 -115
  159. package/src/evm/swaps/handlers/refund/TimelockRefundHandler.ts +37 -37
  160. package/src/evm/swaps/modules/EVMLpVault.ts +154 -154
  161. package/src/evm/swaps/modules/EVMSwapClaim.ts +172 -172
  162. package/src/evm/swaps/modules/EVMSwapInit.ts +328 -328
  163. package/src/evm/swaps/modules/EVMSwapRefund.ts +229 -229
  164. package/src/evm/typechain/common.ts +131 -131
  165. package/src/evm/wallet/EVMSigner.ts +25 -25
  166. package/src/index.ts +48 -45
  167. package/src/utils/Utils.ts +81 -81
@@ -1,48 +1,48 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- import { IClaimHandler } from "../ClaimHandlers";
4
- import { ChainSwapType, RelaySynchronizer } from "@atomiqlabs/base";
5
- import { EVMBtcRelay } from "../../../../btcrelay/EVMBtcRelay";
6
- import { EVMBtcStoredHeader } from "../../../../btcrelay/headers/EVMBtcStoredHeader";
7
- import { EVMTx } from "../../../../chain/modules/EVMTransactions";
8
- import { Buffer } from "buffer";
9
- import { EVMSwapData } from "../../../EVMSwapData";
10
- export type BitcoinCommitmentData = {
11
- btcRelay: EVMBtcRelay<any>;
12
- confirmations: number;
13
- };
14
- export type BitcoinWitnessData = {
15
- tx: {
16
- blockhash: string;
17
- confirmations: number;
18
- txid: string;
19
- hex: string;
20
- height: number;
21
- };
22
- requiredConfirmations: number;
23
- commitedHeader?: EVMBtcStoredHeader;
24
- btcRelay?: EVMBtcRelay<any>;
25
- synchronizer?: RelaySynchronizer<EVMBtcStoredHeader, EVMTx, any>;
26
- };
27
- export declare abstract class IBitcoinClaimHandler<C, W extends BitcoinWitnessData> implements IClaimHandler<C & BitcoinCommitmentData, W> {
28
- readonly address: string;
29
- constructor(address: string);
30
- static readonly address = "";
31
- static readonly type: ChainSwapType;
32
- static readonly gas: number;
33
- protected serializeCommitment(data: BitcoinCommitmentData): Buffer;
34
- getCommitment(data: C & BitcoinCommitmentData): string;
35
- protected _getWitness(signer: string, swapData: EVMSwapData, { tx, btcRelay, commitedHeader, synchronizer, requiredConfirmations }: BitcoinWitnessData, commitment: C, feeRate?: string): Promise<{
36
- initialTxns: EVMTx[];
37
- witness: Buffer;
38
- commitment: Buffer;
39
- blockheader: Buffer;
40
- merkleProof: Buffer;
41
- }>;
42
- abstract getWitness(signer: string, data: EVMSwapData, witnessData: W, feeRate?: string): Promise<{
43
- initialTxns: EVMTx[];
44
- witness: Buffer;
45
- }>;
46
- abstract getGas(data: EVMSwapData): number;
47
- abstract getType(): ChainSwapType;
48
- }
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import { IClaimHandler } from "../ClaimHandlers";
4
+ import { ChainSwapType, RelaySynchronizer } from "@atomiqlabs/base";
5
+ import { EVMBtcRelay } from "../../../../btcrelay/EVMBtcRelay";
6
+ import { EVMBtcStoredHeader } from "../../../../btcrelay/headers/EVMBtcStoredHeader";
7
+ import { EVMTx } from "../../../../chain/modules/EVMTransactions";
8
+ import { Buffer } from "buffer";
9
+ import { EVMSwapData } from "../../../EVMSwapData";
10
+ export type BitcoinCommitmentData = {
11
+ btcRelay: EVMBtcRelay<any>;
12
+ confirmations: number;
13
+ };
14
+ export type BitcoinWitnessData = {
15
+ tx: {
16
+ blockhash: string;
17
+ confirmations: number;
18
+ txid: string;
19
+ hex: string;
20
+ height: number;
21
+ };
22
+ requiredConfirmations: number;
23
+ commitedHeader?: EVMBtcStoredHeader;
24
+ btcRelay?: EVMBtcRelay<any>;
25
+ synchronizer?: RelaySynchronizer<EVMBtcStoredHeader, EVMTx, any>;
26
+ };
27
+ export declare abstract class IBitcoinClaimHandler<C, W extends BitcoinWitnessData> implements IClaimHandler<C & BitcoinCommitmentData, W> {
28
+ readonly address: string;
29
+ constructor(address: string);
30
+ static readonly address = "";
31
+ static readonly type: ChainSwapType;
32
+ static readonly gas: number;
33
+ protected serializeCommitment(data: BitcoinCommitmentData): Buffer;
34
+ getCommitment(data: C & BitcoinCommitmentData): string;
35
+ protected _getWitness(signer: string, swapData: EVMSwapData, { tx, btcRelay, commitedHeader, synchronizer, requiredConfirmations }: BitcoinWitnessData, commitment: C, feeRate?: string): Promise<{
36
+ initialTxns: EVMTx[];
37
+ witness: Buffer;
38
+ commitment: Buffer;
39
+ blockheader: Buffer;
40
+ merkleProof: Buffer;
41
+ }>;
42
+ abstract getWitness(signer: string, data: EVMSwapData, witnessData: W, feeRate?: string): Promise<{
43
+ initialTxns: EVMTx[];
44
+ witness: Buffer;
45
+ }>;
46
+ abstract getGas(data: EVMSwapData): number;
47
+ abstract getType(): ChainSwapType;
48
+ }
@@ -1,63 +1,63 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IBitcoinClaimHandler = void 0;
4
- const base_1 = require("@atomiqlabs/base");
5
- const EVMBtcRelay_1 = require("../../../../btcrelay/EVMBtcRelay");
6
- const Utils_1 = require("../../../../../utils/Utils");
7
- const ethers_1 = require("ethers");
8
- const buffer_1 = require("buffer");
9
- const logger = (0, Utils_1.getLogger)("IBitcoinClaimHandler: ");
10
- class IBitcoinClaimHandler {
11
- constructor(address) {
12
- this.address = address;
13
- }
14
- serializeCommitment(data) {
15
- const buffer = buffer_1.Buffer.alloc(24);
16
- buffer.writeUint32BE(data.confirmations, 0);
17
- buffer_1.Buffer.from(data.btcRelay.contractAddress.substring(2), "hex").copy(buffer, 4, 0, 20);
18
- return buffer;
19
- }
20
- getCommitment(data) {
21
- return (0, ethers_1.keccak256)(this.serializeCommitment(data));
22
- }
23
- async _getWitness(signer, swapData, { tx, btcRelay, commitedHeader, synchronizer, requiredConfirmations }, commitment, feeRate) {
24
- const serializedCommitment = this.serializeCommitment({
25
- ...commitment,
26
- btcRelay,
27
- confirmations: requiredConfirmations
28
- });
29
- const commitmentHash = (0, ethers_1.keccak256)(serializedCommitment);
30
- if (!swapData.isClaimData(commitmentHash))
31
- throw new Error("Invalid commit data");
32
- const merkleProof = await btcRelay.bitcoinRpc.getMerkleProof(tx.txid, tx.blockhash);
33
- logger.debug("getWitness(): merkle proof computed: ", merkleProof);
34
- const txs = [];
35
- if (commitedHeader == null) {
36
- const headers = await EVMBtcRelay_1.EVMBtcRelay.getCommitedHeadersAndSynchronize(signer, btcRelay, [{ blockheight: tx.height, requiredConfirmations, blockhash: tx.blockhash }], txs, synchronizer, feeRate);
37
- if (headers == null)
38
- throw new Error("Cannot fetch committed header!");
39
- commitedHeader = headers[tx.blockhash];
40
- }
41
- const serializedHeader = commitedHeader.serialize();
42
- const serializedMerkleProof = buffer_1.Buffer.concat([
43
- base_1.BigIntBufferUtils.toBuffer(BigInt(merkleProof.pos), "be", 4),
44
- base_1.BigIntBufferUtils.toBuffer(BigInt(merkleProof.merkle.length), "be", 32),
45
- ...merkleProof.merkle
46
- ]);
47
- return {
48
- initialTxns: txs,
49
- witness: buffer_1.Buffer.concat([
50
- serializedCommitment,
51
- serializedHeader,
52
- serializedMerkleProof
53
- ]),
54
- commitment: serializedCommitment,
55
- blockheader: serializedHeader,
56
- merkleProof: serializedMerkleProof
57
- };
58
- }
59
- }
60
- exports.IBitcoinClaimHandler = IBitcoinClaimHandler;
61
- IBitcoinClaimHandler.address = "";
62
- IBitcoinClaimHandler.type = base_1.ChainSwapType.CHAIN_TXID;
63
- IBitcoinClaimHandler.gas = 10000;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IBitcoinClaimHandler = void 0;
4
+ const base_1 = require("@atomiqlabs/base");
5
+ const EVMBtcRelay_1 = require("../../../../btcrelay/EVMBtcRelay");
6
+ const Utils_1 = require("../../../../../utils/Utils");
7
+ const ethers_1 = require("ethers");
8
+ const buffer_1 = require("buffer");
9
+ const logger = (0, Utils_1.getLogger)("IBitcoinClaimHandler: ");
10
+ class IBitcoinClaimHandler {
11
+ constructor(address) {
12
+ this.address = address;
13
+ }
14
+ serializeCommitment(data) {
15
+ const buffer = buffer_1.Buffer.alloc(24);
16
+ buffer.writeUint32BE(data.confirmations, 0);
17
+ buffer_1.Buffer.from(data.btcRelay.contractAddress.substring(2), "hex").copy(buffer, 4, 0, 20);
18
+ return buffer;
19
+ }
20
+ getCommitment(data) {
21
+ return (0, ethers_1.keccak256)(this.serializeCommitment(data));
22
+ }
23
+ async _getWitness(signer, swapData, { tx, btcRelay, commitedHeader, synchronizer, requiredConfirmations }, commitment, feeRate) {
24
+ const serializedCommitment = this.serializeCommitment({
25
+ ...commitment,
26
+ btcRelay,
27
+ confirmations: requiredConfirmations
28
+ });
29
+ const commitmentHash = (0, ethers_1.keccak256)(serializedCommitment);
30
+ if (!swapData.isClaimData(commitmentHash))
31
+ throw new Error("Invalid commit data");
32
+ const merkleProof = await btcRelay.bitcoinRpc.getMerkleProof(tx.txid, tx.blockhash);
33
+ logger.debug("getWitness(): merkle proof computed: ", merkleProof);
34
+ const txs = [];
35
+ if (commitedHeader == null) {
36
+ const headers = await EVMBtcRelay_1.EVMBtcRelay.getCommitedHeadersAndSynchronize(signer, btcRelay, [{ blockheight: tx.height, requiredConfirmations, blockhash: tx.blockhash }], txs, synchronizer, feeRate);
37
+ if (headers == null)
38
+ throw new Error("Cannot fetch committed header!");
39
+ commitedHeader = headers[tx.blockhash];
40
+ }
41
+ const serializedHeader = commitedHeader.serialize();
42
+ const serializedMerkleProof = buffer_1.Buffer.concat([
43
+ base_1.BigIntBufferUtils.toBuffer(BigInt(merkleProof.pos), "be", 4),
44
+ base_1.BigIntBufferUtils.toBuffer(BigInt(merkleProof.merkle.length), "be", 32),
45
+ ...merkleProof.merkle
46
+ ]);
47
+ return {
48
+ initialTxns: txs,
49
+ witness: buffer_1.Buffer.concat([
50
+ serializedCommitment,
51
+ serializedHeader,
52
+ serializedMerkleProof
53
+ ]),
54
+ commitment: serializedCommitment,
55
+ blockheader: serializedHeader,
56
+ merkleProof: serializedMerkleProof
57
+ };
58
+ }
59
+ }
60
+ exports.IBitcoinClaimHandler = IBitcoinClaimHandler;
61
+ IBitcoinClaimHandler.address = "";
62
+ IBitcoinClaimHandler.type = base_1.ChainSwapType.CHAIN_TXID;
63
+ IBitcoinClaimHandler.gas = 10000;
@@ -1,17 +1,17 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- import { IHandler } from "../IHandler";
4
- import { EVMSwapData } from "../../EVMSwapData";
5
- import { EVMTx } from "../../../chain/modules/EVMTransactions";
6
- export declare class TimelockRefundHandler implements IHandler<bigint, never> {
7
- readonly address: string;
8
- static readonly gas: number;
9
- constructor(address: string);
10
- getCommitment(data: bigint): string;
11
- getWitness(signer: string, data: EVMSwapData): Promise<{
12
- initialTxns: EVMTx[];
13
- witness: Buffer;
14
- }>;
15
- getGas(): number;
16
- static getExpiry(data: EVMSwapData): bigint;
17
- }
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import { IHandler } from "../IHandler";
4
+ import { EVMSwapData } from "../../EVMSwapData";
5
+ import { EVMTx } from "../../../chain/modules/EVMTransactions";
6
+ export declare class TimelockRefundHandler implements IHandler<bigint, never> {
7
+ readonly address: string;
8
+ static readonly gas: number;
9
+ constructor(address: string);
10
+ getCommitment(data: bigint): string;
11
+ getWitness(signer: string, data: EVMSwapData): Promise<{
12
+ initialTxns: EVMTx[];
13
+ witness: Buffer;
14
+ }>;
15
+ getGas(): number;
16
+ static getExpiry(data: EVMSwapData): bigint;
17
+ }
@@ -1,28 +1,28 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TimelockRefundHandler = void 0;
4
- const base_1 = require("@atomiqlabs/base");
5
- class TimelockRefundHandler {
6
- constructor(address) {
7
- this.address = address;
8
- }
9
- getCommitment(data) {
10
- return "0x" + base_1.BigIntBufferUtils.toBuffer(data, "be", 32).toString("hex");
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: Buffer.alloc(0) });
18
- }
19
- getGas() {
20
- return TimelockRefundHandler.gas;
21
- }
22
- static getExpiry(data) {
23
- const expiryDataBuffer = Buffer.from(data.refundData.startsWith("0x") ? data.refundData.substring(2) : data.refundData, "hex");
24
- return base_1.BigIntBufferUtils.fromBuffer(expiryDataBuffer, "be");
25
- }
26
- }
27
- exports.TimelockRefundHandler = TimelockRefundHandler;
28
- TimelockRefundHandler.gas = 5000;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TimelockRefundHandler = void 0;
4
+ const base_1 = require("@atomiqlabs/base");
5
+ class TimelockRefundHandler {
6
+ constructor(address) {
7
+ this.address = address;
8
+ }
9
+ getCommitment(data) {
10
+ return "0x" + base_1.BigIntBufferUtils.toBuffer(data, "be", 32).toString("hex");
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: Buffer.alloc(0) });
18
+ }
19
+ getGas() {
20
+ return TimelockRefundHandler.gas;
21
+ }
22
+ static getExpiry(data) {
23
+ const expiryDataBuffer = Buffer.from(data.refundData.startsWith("0x") ? data.refundData.substring(2) : data.refundData, "hex");
24
+ return base_1.BigIntBufferUtils.fromBuffer(expiryDataBuffer, "be");
25
+ }
26
+ }
27
+ exports.TimelockRefundHandler = TimelockRefundHandler;
28
+ TimelockRefundHandler.gas = 5000;
@@ -1,69 +1,69 @@
1
- import { IntermediaryReputationType } from "@atomiqlabs/base";
2
- import { EVMSwapModule } from "../EVMSwapModule";
3
- import { EVMTx } from "../../chain/modules/EVMTransactions";
4
- export declare class EVMLpVault extends EVMSwapModule {
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
- * @param feeRate
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
- * @param feeRate
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<EVMTx[]>;
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<EVMTx[]>;
69
- }
1
+ import { IntermediaryReputationType } from "@atomiqlabs/base";
2
+ import { EVMSwapModule } from "../EVMSwapModule";
3
+ import { EVMTx } from "../../chain/modules/EVMTransactions";
4
+ export declare class EVMLpVault extends EVMSwapModule {
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
+ * @param feeRate
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
+ * @param feeRate
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<EVMTx[]>;
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<EVMTx[]>;
69
+ }