@atomiqlabs/chain-starknet 8.0.13 → 8.1.10

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 (119) hide show
  1. package/dist/index.d.ts +18 -18
  2. package/dist/index.js +42 -42
  3. package/dist/starknet/StarknetChainType.d.ts +19 -19
  4. package/dist/starknet/StarknetChainType.js +2 -2
  5. package/dist/starknet/StarknetInitializer.d.ts +66 -63
  6. package/dist/starknet/StarknetInitializer.js +101 -101
  7. package/dist/starknet/btcrelay/BtcRelayAbi.d.ts +250 -250
  8. package/dist/starknet/btcrelay/BtcRelayAbi.js +341 -341
  9. package/dist/starknet/btcrelay/StarknetBtcRelay.d.ts +196 -196
  10. package/dist/starknet/btcrelay/StarknetBtcRelay.js +419 -411
  11. package/dist/starknet/btcrelay/headers/StarknetBtcHeader.d.ts +70 -70
  12. package/dist/starknet/btcrelay/headers/StarknetBtcHeader.js +115 -115
  13. package/dist/starknet/btcrelay/headers/StarknetBtcStoredHeader.d.ts +91 -91
  14. package/dist/starknet/btcrelay/headers/StarknetBtcStoredHeader.js +155 -155
  15. package/dist/starknet/chain/StarknetAction.d.ts +19 -19
  16. package/dist/starknet/chain/StarknetAction.js +74 -74
  17. package/dist/starknet/chain/StarknetChainInterface.d.ts +142 -143
  18. package/dist/starknet/chain/StarknetChainInterface.js +198 -199
  19. package/dist/starknet/chain/StarknetModule.d.ts +8 -8
  20. package/dist/starknet/chain/StarknetModule.js +12 -12
  21. package/dist/starknet/chain/modules/ERC20Abi.d.ts +755 -755
  22. package/dist/starknet/chain/modules/ERC20Abi.js +1032 -1032
  23. package/dist/starknet/chain/modules/StarknetAccounts.d.ts +6 -6
  24. package/dist/starknet/chain/modules/StarknetAccounts.js +26 -26
  25. package/dist/starknet/chain/modules/StarknetAddresses.d.ts +10 -10
  26. package/dist/starknet/chain/modules/StarknetAddresses.js +27 -27
  27. package/dist/starknet/chain/modules/StarknetBlocks.d.ts +27 -27
  28. package/dist/starknet/chain/modules/StarknetBlocks.js +82 -82
  29. package/dist/starknet/chain/modules/StarknetEvents.d.ts +47 -47
  30. package/dist/starknet/chain/modules/StarknetEvents.js +90 -90
  31. package/dist/starknet/chain/modules/StarknetFees.d.ts +118 -104
  32. package/dist/starknet/chain/modules/StarknetFees.js +150 -146
  33. package/dist/starknet/chain/modules/StarknetSignatures.d.ts +29 -29
  34. package/dist/starknet/chain/modules/StarknetSignatures.js +72 -72
  35. package/dist/starknet/chain/modules/StarknetTokens.d.ts +66 -66
  36. package/dist/starknet/chain/modules/StarknetTokens.js +99 -99
  37. package/dist/starknet/chain/modules/StarknetTransactions.d.ts +122 -115
  38. package/dist/starknet/chain/modules/StarknetTransactions.js +633 -612
  39. package/dist/starknet/contract/StarknetContractBase.d.ts +14 -13
  40. package/dist/starknet/contract/StarknetContractBase.js +21 -20
  41. package/dist/starknet/contract/StarknetContractModule.d.ts +8 -8
  42. package/dist/starknet/contract/StarknetContractModule.js +11 -11
  43. package/dist/starknet/contract/modules/StarknetContractEvents.d.ts +56 -57
  44. package/dist/starknet/contract/modules/StarknetContractEvents.js +111 -111
  45. package/dist/starknet/events/StarknetChainEvents.d.ts +21 -21
  46. package/dist/starknet/events/StarknetChainEvents.js +61 -61
  47. package/dist/starknet/events/StarknetChainEventsBrowser.d.ts +178 -190
  48. package/dist/starknet/events/StarknetChainEventsBrowser.js +523 -582
  49. package/dist/starknet/provider/RpcProviderWithRetries.d.ts +49 -53
  50. package/dist/starknet/provider/RpcProviderWithRetries.js +94 -94
  51. package/dist/starknet/provider/WebSocketChannelWithRetries.d.ts +21 -21
  52. package/dist/starknet/provider/WebSocketChannelWithRetries.js +46 -46
  53. package/dist/starknet/spv_swap/SpvVaultContractAbi.d.ts +488 -488
  54. package/dist/starknet/spv_swap/SpvVaultContractAbi.js +656 -656
  55. package/dist/starknet/spv_swap/StarknetSpvVaultContract.d.ts +225 -219
  56. package/dist/starknet/spv_swap/StarknetSpvVaultContract.js +663 -621
  57. package/dist/starknet/spv_swap/StarknetSpvVaultData.d.ts +108 -108
  58. package/dist/starknet/spv_swap/StarknetSpvVaultData.js +190 -190
  59. package/dist/starknet/spv_swap/StarknetSpvWithdrawalData.d.ts +56 -56
  60. package/dist/starknet/spv_swap/StarknetSpvWithdrawalData.js +103 -103
  61. package/dist/starknet/swaps/EscrowManagerAbi.d.ts +431 -431
  62. package/dist/starknet/swaps/EscrowManagerAbi.js +583 -583
  63. package/dist/starknet/swaps/StarknetSwapContract.d.ts +309 -278
  64. package/dist/starknet/swaps/StarknetSwapContract.js +755 -579
  65. package/dist/starknet/swaps/StarknetSwapData.d.ts +234 -234
  66. package/dist/starknet/swaps/StarknetSwapData.js +474 -474
  67. package/dist/starknet/swaps/StarknetSwapModule.d.ts +10 -10
  68. package/dist/starknet/swaps/StarknetSwapModule.js +12 -12
  69. package/dist/starknet/swaps/handlers/IHandler.d.ts +13 -13
  70. package/dist/starknet/swaps/handlers/IHandler.js +2 -2
  71. package/dist/starknet/swaps/handlers/claim/ClaimHandlers.d.ts +13 -13
  72. package/dist/starknet/swaps/handlers/claim/ClaimHandlers.js +13 -13
  73. package/dist/starknet/swaps/handlers/claim/HashlockClaimHandler.d.ts +21 -21
  74. package/dist/starknet/swaps/handlers/claim/HashlockClaimHandler.js +44 -44
  75. package/dist/starknet/swaps/handlers/claim/btc/BitcoinNoncedOutputClaimHandler.d.ts +24 -24
  76. package/dist/starknet/swaps/handlers/claim/btc/BitcoinNoncedOutputClaimHandler.js +48 -48
  77. package/dist/starknet/swaps/handlers/claim/btc/BitcoinOutputClaimHandler.d.ts +25 -25
  78. package/dist/starknet/swaps/handlers/claim/btc/BitcoinOutputClaimHandler.js +40 -40
  79. package/dist/starknet/swaps/handlers/claim/btc/BitcoinTxIdClaimHandler.d.ts +20 -20
  80. package/dist/starknet/swaps/handlers/claim/btc/BitcoinTxIdClaimHandler.js +30 -30
  81. package/dist/starknet/swaps/handlers/claim/btc/IBitcoinClaimHandler.d.ts +42 -45
  82. package/dist/starknet/swaps/handlers/claim/btc/IBitcoinClaimHandler.js +50 -54
  83. package/dist/starknet/swaps/handlers/refund/TimelockRefundHandler.d.ts +17 -17
  84. package/dist/starknet/swaps/handlers/refund/TimelockRefundHandler.js +27 -27
  85. package/dist/starknet/swaps/modules/StarknetLpVault.d.ts +67 -67
  86. package/dist/starknet/swaps/modules/StarknetLpVault.js +122 -122
  87. package/dist/starknet/swaps/modules/StarknetSwapClaim.d.ts +52 -52
  88. package/dist/starknet/swaps/modules/StarknetSwapClaim.js +99 -99
  89. package/dist/starknet/swaps/modules/StarknetSwapInit.d.ts +94 -94
  90. package/dist/starknet/swaps/modules/StarknetSwapInit.js +239 -239
  91. package/dist/starknet/swaps/modules/StarknetSwapRefund.d.ts +60 -60
  92. package/dist/starknet/swaps/modules/StarknetSwapRefund.js +126 -126
  93. package/dist/starknet/wallet/StarknetBrowserSigner.d.ts +11 -11
  94. package/dist/starknet/wallet/StarknetBrowserSigner.js +17 -17
  95. package/dist/starknet/wallet/StarknetPersistentSigner.d.ts +76 -76
  96. package/dist/starknet/wallet/StarknetPersistentSigner.js +291 -291
  97. package/dist/starknet/wallet/StarknetSigner.d.ts +72 -72
  98. package/dist/starknet/wallet/StarknetSigner.js +114 -114
  99. package/dist/starknet/wallet/accounts/StarknetKeypairWallet.d.ts +18 -18
  100. package/dist/starknet/wallet/accounts/StarknetKeypairWallet.js +45 -45
  101. package/dist/utils/Utils.d.ts +77 -77
  102. package/dist/utils/Utils.js +304 -303
  103. package/package.json +2 -2
  104. package/src/starknet/StarknetInitializer.ts +6 -3
  105. package/src/starknet/btcrelay/StarknetBtcRelay.ts +19 -6
  106. package/src/starknet/btcrelay/headers/StarknetBtcHeader.ts +7 -7
  107. package/src/starknet/btcrelay/headers/StarknetBtcStoredHeader.ts +6 -6
  108. package/src/starknet/chain/StarknetAction.ts +1 -0
  109. package/src/starknet/chain/StarknetChainInterface.ts +0 -2
  110. package/src/starknet/chain/modules/StarknetFees.ts +15 -2
  111. package/src/starknet/chain/modules/StarknetTransactions.ts +24 -0
  112. package/src/starknet/contract/StarknetContractBase.ts +7 -4
  113. package/src/starknet/contract/StarknetContractModule.ts +1 -1
  114. package/src/starknet/contract/modules/StarknetContractEvents.ts +7 -7
  115. package/src/starknet/events/StarknetChainEventsBrowser.ts +2 -64
  116. package/src/starknet/provider/RpcProviderWithRetries.ts +1 -1
  117. package/src/starknet/spv_swap/StarknetSpvVaultContract.ts +84 -18
  118. package/src/starknet/swaps/StarknetSwapContract.ts +242 -6
  119. package/src/starknet/swaps/handlers/claim/btc/IBitcoinClaimHandler.ts +0 -4
@@ -1,108 +1,108 @@
1
- import { SpvVaultClaimEvent, SpvVaultCloseEvent, SpvVaultData, SpvVaultDepositEvent, SpvVaultOpenEvent, SpvVaultTokenBalance, SpvVaultTokenData } from "@atomiqlabs/base";
2
- import { BigNumberish } from "starknet";
3
- import { Serialized } from "../../utils/Utils";
4
- import { StarknetSpvWithdrawalData } from "./StarknetSpvWithdrawalData";
5
- export type StarknetSpvVaultDataType = {
6
- relay_contract: BigNumberish;
7
- token_0: BigNumberish;
8
- token_1: BigNumberish;
9
- token_0_multiplier: BigNumberish;
10
- token_1_multiplier: BigNumberish;
11
- utxo: Record<number, boolean | object | BigNumberish>;
12
- confirmations: BigNumberish;
13
- withdraw_count: BigNumberish;
14
- deposit_count: BigNumberish;
15
- token_0_amount: BigNumberish;
16
- token_1_amount: BigNumberish;
17
- };
18
- export type StarknetSpvVaultDataCtorArgs = {
19
- owner: string;
20
- vaultId: bigint;
21
- struct: StarknetSpvVaultDataType;
22
- initialUtxo?: string;
23
- };
24
- /**
25
- * Represents the state of the SPV vault (UTXO-controlled vault)
26
- *
27
- * @category Swaps
28
- */
29
- export declare class StarknetSpvVaultData extends SpvVaultData<StarknetSpvWithdrawalData> {
30
- readonly owner: string;
31
- readonly vaultId: bigint;
32
- readonly relayContract: string;
33
- readonly token0: {
34
- token: string;
35
- multiplier: bigint;
36
- rawAmount: bigint;
37
- };
38
- readonly token1: {
39
- token: string;
40
- multiplier: bigint;
41
- rawAmount: bigint;
42
- };
43
- readonly initialUtxo?: string;
44
- readonly confirmations: number;
45
- utxo: string;
46
- withdrawCount: number;
47
- depositCount: number;
48
- /**
49
- * Creates a new spv vault data based on the provided arguments
50
- *
51
- * @param args
52
- */
53
- constructor(args: StarknetSpvVaultDataCtorArgs);
54
- /**
55
- * Deserializes the spv vault data from its serialized implementation (returned from {@link StarknetSpvVaultData.serialize})
56
- *
57
- * @param data
58
- */
59
- constructor(data: (Serialized<StarknetSpvVaultData> & {
60
- type: "STARKNET";
61
- }));
62
- /**
63
- * @inheritDoc
64
- */
65
- getBalances(): SpvVaultTokenBalance[];
66
- /**
67
- * @inheritDoc
68
- */
69
- getConfirmations(): number;
70
- /**
71
- * @inheritDoc
72
- */
73
- getOwner(): string;
74
- /**
75
- * @inheritDoc
76
- */
77
- getTokenData(): SpvVaultTokenData[];
78
- /**
79
- * @inheritDoc
80
- */
81
- getUtxo(): string;
82
- /**
83
- * @inheritDoc
84
- */
85
- getVaultId(): bigint;
86
- /**
87
- * @inheritDoc
88
- */
89
- getWithdrawalCount(): number;
90
- /**
91
- * @inheritDoc
92
- */
93
- isOpened(): boolean;
94
- /**
95
- * @inheritDoc
96
- */
97
- serialize(): (Serialized<StarknetSpvVaultData> & {
98
- type: "STARKNET";
99
- });
100
- /**
101
- * @inheritDoc
102
- */
103
- updateState(withdrawalTxOrEvent: SpvVaultClaimEvent | SpvVaultCloseEvent | SpvVaultOpenEvent | SpvVaultDepositEvent | StarknetSpvWithdrawalData): void;
104
- /**
105
- * @inheritDoc
106
- */
107
- getDepositCount(): number;
108
- }
1
+ import { SpvVaultClaimEvent, SpvVaultCloseEvent, SpvVaultData, SpvVaultDepositEvent, SpvVaultOpenEvent, SpvVaultTokenBalance, SpvVaultTokenData } from "@atomiqlabs/base";
2
+ import { BigNumberish } from "starknet";
3
+ import { Serialized } from "../../utils/Utils";
4
+ import { StarknetSpvWithdrawalData } from "./StarknetSpvWithdrawalData";
5
+ export type StarknetSpvVaultDataType = {
6
+ relay_contract: BigNumberish;
7
+ token_0: BigNumberish;
8
+ token_1: BigNumberish;
9
+ token_0_multiplier: BigNumberish;
10
+ token_1_multiplier: BigNumberish;
11
+ utxo: Record<number, boolean | object | BigNumberish>;
12
+ confirmations: BigNumberish;
13
+ withdraw_count: BigNumberish;
14
+ deposit_count: BigNumberish;
15
+ token_0_amount: BigNumberish;
16
+ token_1_amount: BigNumberish;
17
+ };
18
+ export type StarknetSpvVaultDataCtorArgs = {
19
+ owner: string;
20
+ vaultId: bigint;
21
+ struct: StarknetSpvVaultDataType;
22
+ initialUtxo?: string;
23
+ };
24
+ /**
25
+ * Represents the state of the SPV vault (UTXO-controlled vault)
26
+ *
27
+ * @category Swaps
28
+ */
29
+ export declare class StarknetSpvVaultData extends SpvVaultData<StarknetSpvWithdrawalData> {
30
+ readonly owner: string;
31
+ readonly vaultId: bigint;
32
+ readonly relayContract: string;
33
+ readonly token0: {
34
+ token: string;
35
+ multiplier: bigint;
36
+ rawAmount: bigint;
37
+ };
38
+ readonly token1: {
39
+ token: string;
40
+ multiplier: bigint;
41
+ rawAmount: bigint;
42
+ };
43
+ readonly initialUtxo?: string;
44
+ readonly confirmations: number;
45
+ utxo: string;
46
+ withdrawCount: number;
47
+ depositCount: number;
48
+ /**
49
+ * Creates a new spv vault data based on the provided arguments
50
+ *
51
+ * @param args
52
+ */
53
+ constructor(args: StarknetSpvVaultDataCtorArgs);
54
+ /**
55
+ * Deserializes the spv vault data from its serialized implementation (returned from {@link StarknetSpvVaultData.serialize})
56
+ *
57
+ * @param data
58
+ */
59
+ constructor(data: (Serialized<StarknetSpvVaultData> & {
60
+ type: "STARKNET";
61
+ }));
62
+ /**
63
+ * @inheritDoc
64
+ */
65
+ getBalances(): SpvVaultTokenBalance[];
66
+ /**
67
+ * @inheritDoc
68
+ */
69
+ getConfirmations(): number;
70
+ /**
71
+ * @inheritDoc
72
+ */
73
+ getOwner(): string;
74
+ /**
75
+ * @inheritDoc
76
+ */
77
+ getTokenData(): SpvVaultTokenData[];
78
+ /**
79
+ * @inheritDoc
80
+ */
81
+ getUtxo(): string;
82
+ /**
83
+ * @inheritDoc
84
+ */
85
+ getVaultId(): bigint;
86
+ /**
87
+ * @inheritDoc
88
+ */
89
+ getWithdrawalCount(): number;
90
+ /**
91
+ * @inheritDoc
92
+ */
93
+ isOpened(): boolean;
94
+ /**
95
+ * @inheritDoc
96
+ */
97
+ serialize(): (Serialized<StarknetSpvVaultData> & {
98
+ type: "STARKNET";
99
+ });
100
+ /**
101
+ * @inheritDoc
102
+ */
103
+ updateState(withdrawalTxOrEvent: SpvVaultClaimEvent | SpvVaultCloseEvent | SpvVaultOpenEvent | SpvVaultDepositEvent | StarknetSpvWithdrawalData): void;
104
+ /**
105
+ * @inheritDoc
106
+ */
107
+ getDepositCount(): number;
108
+ }
@@ -1,190 +1,190 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StarknetSpvVaultData = void 0;
4
- const base_1 = require("@atomiqlabs/base");
5
- const Utils_1 = require("../../utils/Utils");
6
- const buffer_1 = require("buffer");
7
- const StarknetSpvWithdrawalData_1 = require("./StarknetSpvWithdrawalData");
8
- function isSerializedData(obj) {
9
- return obj.type === "STARKNET";
10
- }
11
- /**
12
- * Represents the state of the SPV vault (UTXO-controlled vault)
13
- *
14
- * @category Swaps
15
- */
16
- class StarknetSpvVaultData extends base_1.SpvVaultData {
17
- constructor(data) {
18
- super();
19
- if (!isSerializedData(data)) {
20
- if (data.vaultId == null)
21
- throw new Error("vaultId is null");
22
- if (data.struct == null)
23
- throw new Error("state is null");
24
- this.owner = data.owner;
25
- this.vaultId = data.vaultId;
26
- this.relayContract = (0, Utils_1.toHex)(data.struct.relay_contract);
27
- this.token0 = {
28
- token: (0, Utils_1.toHex)(data.struct.token_0),
29
- multiplier: (0, Utils_1.toBigInt)(data.struct.token_0_multiplier),
30
- rawAmount: (0, Utils_1.toBigInt)(data.struct.token_0_amount)
31
- };
32
- this.token1 = {
33
- token: (0, Utils_1.toHex)(data.struct.token_1),
34
- multiplier: (0, Utils_1.toBigInt)(data.struct.token_1_multiplier),
35
- rawAmount: (0, Utils_1.toBigInt)(data.struct.token_1_amount)
36
- };
37
- const txHash = buffer_1.Buffer.from((0, Utils_1.toBigInt)(data.struct.utxo["0"]).toString(16).padStart(64, "0"), "hex");
38
- const vout = (0, Utils_1.toBigInt)(data.struct.utxo["1"]);
39
- this.utxo = txHash.reverse().toString("hex") + ":" + vout.toString(10);
40
- this.confirmations = Number((0, Utils_1.toBigInt)(data.struct.confirmations));
41
- this.withdrawCount = Number((0, Utils_1.toBigInt)(data.struct.withdraw_count));
42
- this.depositCount = Number((0, Utils_1.toBigInt)(data.struct.deposit_count));
43
- this.initialUtxo = data.initialUtxo;
44
- }
45
- else {
46
- this.owner = data.owner;
47
- this.vaultId = BigInt(data.vaultId);
48
- this.relayContract = data.relayContract;
49
- this.token0 = {
50
- token: data.token0.token,
51
- multiplier: BigInt(data.token0.multiplier),
52
- rawAmount: BigInt(data.token0.rawAmount)
53
- };
54
- this.token1 = {
55
- token: data.token1.token,
56
- multiplier: BigInt(data.token1.multiplier),
57
- rawAmount: BigInt(data.token1.rawAmount)
58
- };
59
- this.utxo = data.utxo;
60
- this.confirmations = data.confirmations;
61
- this.withdrawCount = data.withdrawCount;
62
- this.depositCount = data.depositCount;
63
- this.initialUtxo = data.initialUtxo;
64
- }
65
- }
66
- /**
67
- * @inheritDoc
68
- */
69
- getBalances() {
70
- return [
71
- { ...this.token0, scaledAmount: this.token0.rawAmount * this.token0.multiplier },
72
- { ...this.token1, scaledAmount: this.token1.rawAmount * this.token1.multiplier }
73
- ];
74
- }
75
- /**
76
- * @inheritDoc
77
- */
78
- getConfirmations() {
79
- return this.confirmations;
80
- }
81
- /**
82
- * @inheritDoc
83
- */
84
- getOwner() {
85
- return this.owner;
86
- }
87
- /**
88
- * @inheritDoc
89
- */
90
- getTokenData() {
91
- return [this.token0, this.token1];
92
- }
93
- /**
94
- * @inheritDoc
95
- */
96
- getUtxo() {
97
- return this.isOpened() ? this.utxo : this.initialUtxo;
98
- }
99
- /**
100
- * @inheritDoc
101
- */
102
- getVaultId() {
103
- return this.vaultId;
104
- }
105
- /**
106
- * @inheritDoc
107
- */
108
- getWithdrawalCount() {
109
- return this.withdrawCount;
110
- }
111
- /**
112
- * @inheritDoc
113
- */
114
- isOpened() {
115
- return this.utxo !== "0000000000000000000000000000000000000000000000000000000000000000:0";
116
- }
117
- /**
118
- * @inheritDoc
119
- */
120
- serialize() {
121
- return {
122
- type: "STARKNET",
123
- owner: this.owner,
124
- vaultId: this.vaultId.toString(10),
125
- relayContract: this.relayContract,
126
- token0: {
127
- token: this.token0.token,
128
- multiplier: this.token0.multiplier.toString(10),
129
- rawAmount: this.token0.rawAmount.toString(10)
130
- },
131
- token1: {
132
- token: this.token1.token,
133
- multiplier: this.token1.multiplier.toString(10),
134
- rawAmount: this.token1.rawAmount.toString(10)
135
- },
136
- utxo: this.utxo,
137
- confirmations: this.confirmations,
138
- withdrawCount: this.withdrawCount,
139
- depositCount: this.depositCount,
140
- initialUtxo: this.initialUtxo
141
- };
142
- }
143
- /**
144
- * @inheritDoc
145
- */
146
- updateState(withdrawalTxOrEvent) {
147
- if (withdrawalTxOrEvent instanceof base_1.SpvVaultClaimEvent) {
148
- if (withdrawalTxOrEvent.withdrawCount <= this.withdrawCount)
149
- return;
150
- this.token0.rawAmount -= withdrawalTxOrEvent.amounts[0];
151
- this.token1.rawAmount -= withdrawalTxOrEvent.amounts[1];
152
- this.withdrawCount = withdrawalTxOrEvent.withdrawCount;
153
- this.utxo = withdrawalTxOrEvent.btcTxId + ":0";
154
- }
155
- if (withdrawalTxOrEvent instanceof base_1.SpvVaultCloseEvent) {
156
- this.token0.rawAmount = 0n;
157
- this.token1.rawAmount = 0n;
158
- this.utxo = "0000000000000000000000000000000000000000000000000000000000000000:0";
159
- }
160
- if (withdrawalTxOrEvent instanceof base_1.SpvVaultOpenEvent) {
161
- if (this.isOpened())
162
- return;
163
- this.utxo = withdrawalTxOrEvent.btcTxId + ":" + withdrawalTxOrEvent.vout;
164
- }
165
- if (withdrawalTxOrEvent instanceof base_1.SpvVaultDepositEvent) {
166
- if (withdrawalTxOrEvent.depositCount <= this.depositCount)
167
- return;
168
- this.token0.rawAmount += withdrawalTxOrEvent.amounts[0];
169
- this.token1.rawAmount += withdrawalTxOrEvent.amounts[1];
170
- this.depositCount = withdrawalTxOrEvent.depositCount;
171
- }
172
- if (withdrawalTxOrEvent instanceof StarknetSpvWithdrawalData_1.StarknetSpvWithdrawalData) {
173
- if (withdrawalTxOrEvent.getSpentVaultUtxo() !== this.utxo)
174
- return;
175
- const amounts = withdrawalTxOrEvent.getTotalOutput();
176
- this.token0.rawAmount -= amounts[0];
177
- this.token1.rawAmount -= amounts[1];
178
- this.withdrawCount++;
179
- this.utxo = withdrawalTxOrEvent.btcTx.txid + ":0";
180
- }
181
- }
182
- /**
183
- * @inheritDoc
184
- */
185
- getDepositCount() {
186
- return this.depositCount;
187
- }
188
- }
189
- exports.StarknetSpvVaultData = StarknetSpvVaultData;
190
- base_1.SpvVaultData.deserializers["STARKNET"] = StarknetSpvVaultData;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StarknetSpvVaultData = void 0;
4
+ const base_1 = require("@atomiqlabs/base");
5
+ const Utils_1 = require("../../utils/Utils");
6
+ const buffer_1 = require("buffer");
7
+ const StarknetSpvWithdrawalData_1 = require("./StarknetSpvWithdrawalData");
8
+ function isSerializedData(obj) {
9
+ return obj.type === "STARKNET";
10
+ }
11
+ /**
12
+ * Represents the state of the SPV vault (UTXO-controlled vault)
13
+ *
14
+ * @category Swaps
15
+ */
16
+ class StarknetSpvVaultData extends base_1.SpvVaultData {
17
+ constructor(data) {
18
+ super();
19
+ if (!isSerializedData(data)) {
20
+ if (data.vaultId == null)
21
+ throw new Error("vaultId is null");
22
+ if (data.struct == null)
23
+ throw new Error("state is null");
24
+ this.owner = data.owner;
25
+ this.vaultId = data.vaultId;
26
+ this.relayContract = (0, Utils_1.toHex)(data.struct.relay_contract);
27
+ this.token0 = {
28
+ token: (0, Utils_1.toHex)(data.struct.token_0),
29
+ multiplier: (0, Utils_1.toBigInt)(data.struct.token_0_multiplier),
30
+ rawAmount: (0, Utils_1.toBigInt)(data.struct.token_0_amount)
31
+ };
32
+ this.token1 = {
33
+ token: (0, Utils_1.toHex)(data.struct.token_1),
34
+ multiplier: (0, Utils_1.toBigInt)(data.struct.token_1_multiplier),
35
+ rawAmount: (0, Utils_1.toBigInt)(data.struct.token_1_amount)
36
+ };
37
+ const txHash = buffer_1.Buffer.from((0, Utils_1.toBigInt)(data.struct.utxo["0"]).toString(16).padStart(64, "0"), "hex");
38
+ const vout = (0, Utils_1.toBigInt)(data.struct.utxo["1"]);
39
+ this.utxo = txHash.reverse().toString("hex") + ":" + vout.toString(10);
40
+ this.confirmations = Number((0, Utils_1.toBigInt)(data.struct.confirmations));
41
+ this.withdrawCount = Number((0, Utils_1.toBigInt)(data.struct.withdraw_count));
42
+ this.depositCount = Number((0, Utils_1.toBigInt)(data.struct.deposit_count));
43
+ this.initialUtxo = data.initialUtxo;
44
+ }
45
+ else {
46
+ this.owner = data.owner;
47
+ this.vaultId = BigInt(data.vaultId);
48
+ this.relayContract = data.relayContract;
49
+ this.token0 = {
50
+ token: data.token0.token,
51
+ multiplier: BigInt(data.token0.multiplier),
52
+ rawAmount: BigInt(data.token0.rawAmount)
53
+ };
54
+ this.token1 = {
55
+ token: data.token1.token,
56
+ multiplier: BigInt(data.token1.multiplier),
57
+ rawAmount: BigInt(data.token1.rawAmount)
58
+ };
59
+ this.utxo = data.utxo;
60
+ this.confirmations = data.confirmations;
61
+ this.withdrawCount = data.withdrawCount;
62
+ this.depositCount = data.depositCount;
63
+ this.initialUtxo = data.initialUtxo;
64
+ }
65
+ }
66
+ /**
67
+ * @inheritDoc
68
+ */
69
+ getBalances() {
70
+ return [
71
+ { ...this.token0, scaledAmount: this.token0.rawAmount * this.token0.multiplier },
72
+ { ...this.token1, scaledAmount: this.token1.rawAmount * this.token1.multiplier }
73
+ ];
74
+ }
75
+ /**
76
+ * @inheritDoc
77
+ */
78
+ getConfirmations() {
79
+ return this.confirmations;
80
+ }
81
+ /**
82
+ * @inheritDoc
83
+ */
84
+ getOwner() {
85
+ return this.owner;
86
+ }
87
+ /**
88
+ * @inheritDoc
89
+ */
90
+ getTokenData() {
91
+ return [this.token0, this.token1];
92
+ }
93
+ /**
94
+ * @inheritDoc
95
+ */
96
+ getUtxo() {
97
+ return this.isOpened() ? this.utxo : this.initialUtxo;
98
+ }
99
+ /**
100
+ * @inheritDoc
101
+ */
102
+ getVaultId() {
103
+ return this.vaultId;
104
+ }
105
+ /**
106
+ * @inheritDoc
107
+ */
108
+ getWithdrawalCount() {
109
+ return this.withdrawCount;
110
+ }
111
+ /**
112
+ * @inheritDoc
113
+ */
114
+ isOpened() {
115
+ return this.utxo !== "0000000000000000000000000000000000000000000000000000000000000000:0";
116
+ }
117
+ /**
118
+ * @inheritDoc
119
+ */
120
+ serialize() {
121
+ return {
122
+ type: "STARKNET",
123
+ owner: this.owner,
124
+ vaultId: this.vaultId.toString(10),
125
+ relayContract: this.relayContract,
126
+ token0: {
127
+ token: this.token0.token,
128
+ multiplier: this.token0.multiplier.toString(10),
129
+ rawAmount: this.token0.rawAmount.toString(10)
130
+ },
131
+ token1: {
132
+ token: this.token1.token,
133
+ multiplier: this.token1.multiplier.toString(10),
134
+ rawAmount: this.token1.rawAmount.toString(10)
135
+ },
136
+ utxo: this.utxo,
137
+ confirmations: this.confirmations,
138
+ withdrawCount: this.withdrawCount,
139
+ depositCount: this.depositCount,
140
+ initialUtxo: this.initialUtxo
141
+ };
142
+ }
143
+ /**
144
+ * @inheritDoc
145
+ */
146
+ updateState(withdrawalTxOrEvent) {
147
+ if (withdrawalTxOrEvent instanceof base_1.SpvVaultClaimEvent) {
148
+ if (withdrawalTxOrEvent.withdrawCount <= this.withdrawCount)
149
+ return;
150
+ this.token0.rawAmount -= withdrawalTxOrEvent.amounts[0];
151
+ this.token1.rawAmount -= withdrawalTxOrEvent.amounts[1];
152
+ this.withdrawCount = withdrawalTxOrEvent.withdrawCount;
153
+ this.utxo = withdrawalTxOrEvent.btcTxId + ":0";
154
+ }
155
+ if (withdrawalTxOrEvent instanceof base_1.SpvVaultCloseEvent) {
156
+ this.token0.rawAmount = 0n;
157
+ this.token1.rawAmount = 0n;
158
+ this.utxo = "0000000000000000000000000000000000000000000000000000000000000000:0";
159
+ }
160
+ if (withdrawalTxOrEvent instanceof base_1.SpvVaultOpenEvent) {
161
+ if (this.isOpened())
162
+ return;
163
+ this.utxo = withdrawalTxOrEvent.btcTxId + ":" + withdrawalTxOrEvent.vout;
164
+ }
165
+ if (withdrawalTxOrEvent instanceof base_1.SpvVaultDepositEvent) {
166
+ if (withdrawalTxOrEvent.depositCount <= this.depositCount)
167
+ return;
168
+ this.token0.rawAmount += withdrawalTxOrEvent.amounts[0];
169
+ this.token1.rawAmount += withdrawalTxOrEvent.amounts[1];
170
+ this.depositCount = withdrawalTxOrEvent.depositCount;
171
+ }
172
+ if (withdrawalTxOrEvent instanceof StarknetSpvWithdrawalData_1.StarknetSpvWithdrawalData) {
173
+ if (withdrawalTxOrEvent.getSpentVaultUtxo() !== this.utxo)
174
+ return;
175
+ const amounts = withdrawalTxOrEvent.getTotalOutput();
176
+ this.token0.rawAmount -= amounts[0];
177
+ this.token1.rawAmount -= amounts[1];
178
+ this.withdrawCount++;
179
+ this.utxo = withdrawalTxOrEvent.btcTx.txid + ":0";
180
+ }
181
+ }
182
+ /**
183
+ * @inheritDoc
184
+ */
185
+ getDepositCount() {
186
+ return this.depositCount;
187
+ }
188
+ }
189
+ exports.StarknetSpvVaultData = StarknetSpvVaultData;
190
+ base_1.SpvVaultData.deserializers["STARKNET"] = StarknetSpvVaultData;