@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.
Files changed (146) hide show
  1. package/LICENSE +201 -201
  2. package/dist/index.d.ts +38 -38
  3. package/dist/index.js +54 -54
  4. package/dist/starknet/StarknetChainType.d.ts +13 -13
  5. package/dist/starknet/StarknetChainType.js +2 -2
  6. package/dist/starknet/StarknetInitializer.d.ts +27 -27
  7. package/dist/starknet/StarknetInitializer.js +69 -69
  8. package/dist/starknet/btcrelay/BtcRelayAbi.d.ts +250 -250
  9. package/dist/starknet/btcrelay/BtcRelayAbi.js +341 -341
  10. package/dist/starknet/btcrelay/StarknetBtcRelay.d.ts +186 -186
  11. package/dist/starknet/btcrelay/StarknetBtcRelay.js +379 -379
  12. package/dist/starknet/btcrelay/headers/StarknetBtcHeader.d.ts +31 -31
  13. package/dist/starknet/btcrelay/headers/StarknetBtcHeader.js +74 -74
  14. package/dist/starknet/btcrelay/headers/StarknetBtcStoredHeader.d.ts +51 -51
  15. package/dist/starknet/btcrelay/headers/StarknetBtcStoredHeader.js +113 -113
  16. package/dist/starknet/chain/StarknetAction.d.ts +19 -19
  17. package/dist/starknet/chain/StarknetAction.js +73 -73
  18. package/dist/starknet/chain/StarknetChainInterface.d.ts +52 -52
  19. package/dist/starknet/chain/StarknetChainInterface.js +91 -91
  20. package/dist/starknet/chain/StarknetModule.d.ts +14 -14
  21. package/dist/starknet/chain/StarknetModule.js +13 -13
  22. package/dist/starknet/chain/modules/ERC20Abi.d.ts +755 -755
  23. package/dist/starknet/chain/modules/ERC20Abi.js +1032 -1032
  24. package/dist/starknet/chain/modules/StarknetAccounts.d.ts +6 -6
  25. package/dist/starknet/chain/modules/StarknetAccounts.js +24 -24
  26. package/dist/starknet/chain/modules/StarknetAddresses.d.ts +9 -9
  27. package/dist/starknet/chain/modules/StarknetAddresses.js +26 -26
  28. package/dist/starknet/chain/modules/StarknetBlocks.d.ts +20 -20
  29. package/dist/starknet/chain/modules/StarknetBlocks.js +64 -64
  30. package/dist/starknet/chain/modules/StarknetEvents.d.ts +44 -44
  31. package/dist/starknet/chain/modules/StarknetEvents.js +88 -88
  32. package/dist/starknet/chain/modules/StarknetFees.d.ts +77 -77
  33. package/dist/starknet/chain/modules/StarknetFees.js +114 -114
  34. package/dist/starknet/chain/modules/StarknetSignatures.d.ts +29 -29
  35. package/dist/starknet/chain/modules/StarknetSignatures.js +72 -72
  36. package/dist/starknet/chain/modules/StarknetTokens.d.ts +69 -69
  37. package/dist/starknet/chain/modules/StarknetTokens.js +102 -98
  38. package/dist/starknet/chain/modules/StarknetTransactions.d.ts +93 -93
  39. package/dist/starknet/chain/modules/StarknetTransactions.js +261 -260
  40. package/dist/starknet/contract/StarknetContractBase.d.ts +13 -13
  41. package/dist/starknet/contract/StarknetContractBase.js +20 -16
  42. package/dist/starknet/contract/StarknetContractModule.d.ts +8 -8
  43. package/dist/starknet/contract/StarknetContractModule.js +11 -11
  44. package/dist/starknet/contract/modules/StarknetContractEvents.d.ts +51 -51
  45. package/dist/starknet/contract/modules/StarknetContractEvents.js +97 -97
  46. package/dist/starknet/events/StarknetChainEvents.d.ts +21 -21
  47. package/dist/starknet/events/StarknetChainEvents.js +52 -52
  48. package/dist/starknet/events/StarknetChainEventsBrowser.d.ts +89 -90
  49. package/dist/starknet/events/StarknetChainEventsBrowser.js +296 -294
  50. package/dist/starknet/provider/RpcProviderWithRetries.d.ts +21 -21
  51. package/dist/starknet/provider/RpcProviderWithRetries.js +32 -32
  52. package/dist/starknet/spv_swap/SpvVaultContractAbi.d.ts +488 -488
  53. package/dist/starknet/spv_swap/SpvVaultContractAbi.js +656 -656
  54. package/dist/starknet/spv_swap/StarknetSpvVaultContract.d.ts +66 -66
  55. package/dist/starknet/spv_swap/StarknetSpvVaultContract.js +382 -382
  56. package/dist/starknet/spv_swap/StarknetSpvVaultData.d.ts +49 -49
  57. package/dist/starknet/spv_swap/StarknetSpvVaultData.js +145 -145
  58. package/dist/starknet/spv_swap/StarknetSpvWithdrawalData.d.ts +25 -25
  59. package/dist/starknet/spv_swap/StarknetSpvWithdrawalData.js +72 -72
  60. package/dist/starknet/swaps/EscrowManagerAbi.d.ts +431 -431
  61. package/dist/starknet/swaps/EscrowManagerAbi.js +583 -583
  62. package/dist/starknet/swaps/StarknetSwapContract.d.ts +191 -191
  63. package/dist/starknet/swaps/StarknetSwapContract.js +424 -424
  64. package/dist/starknet/swaps/StarknetSwapData.d.ts +74 -74
  65. package/dist/starknet/swaps/StarknetSwapData.js +325 -325
  66. package/dist/starknet/swaps/StarknetSwapModule.d.ts +10 -10
  67. package/dist/starknet/swaps/StarknetSwapModule.js +11 -11
  68. package/dist/starknet/swaps/handlers/IHandler.d.ts +13 -13
  69. package/dist/starknet/swaps/handlers/IHandler.js +2 -2
  70. package/dist/starknet/swaps/handlers/claim/ClaimHandlers.d.ts +13 -13
  71. package/dist/starknet/swaps/handlers/claim/ClaimHandlers.js +13 -13
  72. package/dist/starknet/swaps/handlers/claim/HashlockClaimHandler.d.ts +21 -21
  73. package/dist/starknet/swaps/handlers/claim/HashlockClaimHandler.js +44 -44
  74. package/dist/starknet/swaps/handlers/claim/btc/BitcoinNoncedOutputClaimHandler.d.ts +24 -24
  75. package/dist/starknet/swaps/handlers/claim/btc/BitcoinNoncedOutputClaimHandler.js +48 -48
  76. package/dist/starknet/swaps/handlers/claim/btc/BitcoinOutputClaimHandler.d.ts +25 -25
  77. package/dist/starknet/swaps/handlers/claim/btc/BitcoinOutputClaimHandler.js +40 -40
  78. package/dist/starknet/swaps/handlers/claim/btc/BitcoinTxIdClaimHandler.d.ts +20 -20
  79. package/dist/starknet/swaps/handlers/claim/btc/BitcoinTxIdClaimHandler.js +30 -30
  80. package/dist/starknet/swaps/handlers/claim/btc/IBitcoinClaimHandler.d.ts +45 -45
  81. package/dist/starknet/swaps/handlers/claim/btc/IBitcoinClaimHandler.js +52 -52
  82. package/dist/starknet/swaps/handlers/refund/TimelockRefundHandler.d.ts +17 -17
  83. package/dist/starknet/swaps/handlers/refund/TimelockRefundHandler.js +27 -27
  84. package/dist/starknet/swaps/modules/StarknetLpVault.d.ts +69 -69
  85. package/dist/starknet/swaps/modules/StarknetLpVault.js +122 -122
  86. package/dist/starknet/swaps/modules/StarknetSwapClaim.d.ts +53 -53
  87. package/dist/starknet/swaps/modules/StarknetSwapClaim.js +100 -100
  88. package/dist/starknet/swaps/modules/StarknetSwapInit.d.ts +94 -87
  89. package/dist/starknet/swaps/modules/StarknetSwapInit.js +235 -225
  90. package/dist/starknet/swaps/modules/StarknetSwapRefund.d.ts +62 -62
  91. package/dist/starknet/swaps/modules/StarknetSwapRefund.js +128 -128
  92. package/dist/starknet/wallet/StarknetKeypairWallet.d.ts +7 -7
  93. package/dist/starknet/wallet/StarknetKeypairWallet.js +35 -30
  94. package/dist/starknet/wallet/StarknetSigner.d.ts +12 -12
  95. package/dist/starknet/wallet/StarknetSigner.js +47 -46
  96. package/dist/utils/Utils.d.ts +37 -37
  97. package/dist/utils/Utils.js +260 -261
  98. package/package.json +43 -37
  99. package/src/index.ts +47 -47
  100. package/src/starknet/StarknetChainType.ts +28 -28
  101. package/src/starknet/StarknetInitializer.ts +108 -108
  102. package/src/starknet/btcrelay/BtcRelayAbi.ts +338 -338
  103. package/src/starknet/btcrelay/StarknetBtcRelay.ts +494 -494
  104. package/src/starknet/btcrelay/headers/StarknetBtcHeader.ts +100 -100
  105. package/src/starknet/btcrelay/headers/StarknetBtcStoredHeader.ts +141 -141
  106. package/src/starknet/chain/StarknetAction.ts +85 -85
  107. package/src/starknet/chain/StarknetChainInterface.ts +149 -149
  108. package/src/starknet/chain/StarknetModule.ts +19 -19
  109. package/src/starknet/chain/modules/ERC20Abi.ts +1029 -1029
  110. package/src/starknet/chain/modules/StarknetAccounts.ts +25 -25
  111. package/src/starknet/chain/modules/StarknetAddresses.ts +22 -22
  112. package/src/starknet/chain/modules/StarknetBlocks.ts +75 -74
  113. package/src/starknet/chain/modules/StarknetEvents.ts +104 -104
  114. package/src/starknet/chain/modules/StarknetFees.ts +154 -154
  115. package/src/starknet/chain/modules/StarknetSignatures.ts +91 -91
  116. package/src/starknet/chain/modules/StarknetTokens.ts +120 -116
  117. package/src/starknet/chain/modules/StarknetTransactions.ts +285 -283
  118. package/src/starknet/contract/StarknetContractBase.ts +30 -26
  119. package/src/starknet/contract/StarknetContractModule.ts +16 -16
  120. package/src/starknet/contract/modules/StarknetContractEvents.ts +134 -134
  121. package/src/starknet/events/StarknetChainEvents.ts +67 -67
  122. package/src/starknet/events/StarknetChainEventsBrowser.ts +411 -411
  123. package/src/starknet/provider/RpcProviderWithRetries.ts +43 -43
  124. package/src/starknet/spv_swap/SpvVaultContractAbi.ts +656 -656
  125. package/src/starknet/spv_swap/StarknetSpvVaultContract.ts +483 -483
  126. package/src/starknet/spv_swap/StarknetSpvVaultData.ts +195 -195
  127. package/src/starknet/spv_swap/StarknetSpvWithdrawalData.ts +79 -79
  128. package/src/starknet/swaps/EscrowManagerAbi.ts +582 -582
  129. package/src/starknet/swaps/StarknetSwapContract.ts +647 -647
  130. package/src/starknet/swaps/StarknetSwapData.ts +455 -455
  131. package/src/starknet/swaps/StarknetSwapModule.ts +17 -17
  132. package/src/starknet/swaps/handlers/IHandler.ts +20 -20
  133. package/src/starknet/swaps/handlers/claim/ClaimHandlers.ts +23 -23
  134. package/src/starknet/swaps/handlers/claim/HashlockClaimHandler.ts +53 -53
  135. package/src/starknet/swaps/handlers/claim/btc/BitcoinNoncedOutputClaimHandler.ts +73 -73
  136. package/src/starknet/swaps/handlers/claim/btc/BitcoinOutputClaimHandler.ts +67 -67
  137. package/src/starknet/swaps/handlers/claim/btc/BitcoinTxIdClaimHandler.ts +50 -50
  138. package/src/starknet/swaps/handlers/claim/btc/IBitcoinClaimHandler.ts +102 -102
  139. package/src/starknet/swaps/handlers/refund/TimelockRefundHandler.ts +38 -38
  140. package/src/starknet/swaps/modules/StarknetLpVault.ts +147 -147
  141. package/src/starknet/swaps/modules/StarknetSwapClaim.ts +141 -141
  142. package/src/starknet/swaps/modules/StarknetSwapInit.ts +300 -287
  143. package/src/starknet/swaps/modules/StarknetSwapRefund.ts +196 -196
  144. package/src/starknet/wallet/StarknetKeypairWallet.ts +44 -39
  145. package/src/starknet/wallet/StarknetSigner.ts +55 -55
  146. package/src/utils/Utils.ts +251 -252
@@ -1,49 +1,49 @@
1
- import { SpvVaultClaimEvent, SpvVaultCloseEvent, SpvVaultData, SpvVaultDepositEvent, SpvVaultOpenEvent, SpvVaultTokenBalance, SpvVaultTokenData } from "@atomiqlabs/base";
2
- import { BigNumberish } from "starknet";
3
- import { StarknetSpvWithdrawalData } from "./StarknetSpvWithdrawalData";
4
- export type StarknetSpvVaultDataType = {
5
- relay_contract: BigNumberish;
6
- token_0: BigNumberish;
7
- token_1: BigNumberish;
8
- token_0_multiplier: BigNumberish;
9
- token_1_multiplier: BigNumberish;
10
- utxo: Record<number, boolean | object | BigNumberish>;
11
- confirmations: BigNumberish;
12
- withdraw_count: BigNumberish;
13
- deposit_count: BigNumberish;
14
- token_0_amount: BigNumberish;
15
- token_1_amount: BigNumberish;
16
- };
17
- export declare class StarknetSpvVaultData extends SpvVaultData<StarknetSpvWithdrawalData> {
18
- readonly owner: string;
19
- readonly vaultId: bigint;
20
- readonly relayContract: string;
21
- readonly token0: {
22
- token: string;
23
- multiplier: bigint;
24
- rawAmount: bigint;
25
- };
26
- readonly token1: {
27
- token: string;
28
- multiplier: bigint;
29
- rawAmount: bigint;
30
- };
31
- readonly initialUtxo: string;
32
- utxo: string;
33
- readonly confirmations: number;
34
- withdrawCount: number;
35
- depositCount: number;
36
- constructor(owner: string, vaultId: bigint, struct: StarknetSpvVaultDataType, initialUtxo?: string);
37
- constructor(serializedObj: any);
38
- getBalances(): SpvVaultTokenBalance[];
39
- getConfirmations(): number;
40
- getOwner(): string;
41
- getTokenData(): SpvVaultTokenData[];
42
- getUtxo(): string;
43
- getVaultId(): bigint;
44
- getWithdrawalCount(): number;
45
- isOpened(): boolean;
46
- serialize(): any;
47
- updateState(withdrawalTxOrEvent: SpvVaultClaimEvent | SpvVaultCloseEvent | SpvVaultOpenEvent | SpvVaultDepositEvent | StarknetSpvWithdrawalData): void;
48
- getDepositCount(): number;
49
- }
1
+ import { SpvVaultClaimEvent, SpvVaultCloseEvent, SpvVaultData, SpvVaultDepositEvent, SpvVaultOpenEvent, SpvVaultTokenBalance, SpvVaultTokenData } from "@atomiqlabs/base";
2
+ import { BigNumberish } from "starknet";
3
+ import { StarknetSpvWithdrawalData } from "./StarknetSpvWithdrawalData";
4
+ export type StarknetSpvVaultDataType = {
5
+ relay_contract: BigNumberish;
6
+ token_0: BigNumberish;
7
+ token_1: BigNumberish;
8
+ token_0_multiplier: BigNumberish;
9
+ token_1_multiplier: BigNumberish;
10
+ utxo: Record<number, boolean | object | BigNumberish>;
11
+ confirmations: BigNumberish;
12
+ withdraw_count: BigNumberish;
13
+ deposit_count: BigNumberish;
14
+ token_0_amount: BigNumberish;
15
+ token_1_amount: BigNumberish;
16
+ };
17
+ export declare class StarknetSpvVaultData extends SpvVaultData<StarknetSpvWithdrawalData> {
18
+ readonly owner: string;
19
+ readonly vaultId: bigint;
20
+ readonly relayContract: string;
21
+ readonly token0: {
22
+ token: string;
23
+ multiplier: bigint;
24
+ rawAmount: bigint;
25
+ };
26
+ readonly token1: {
27
+ token: string;
28
+ multiplier: bigint;
29
+ rawAmount: bigint;
30
+ };
31
+ readonly initialUtxo: string;
32
+ utxo: string;
33
+ readonly confirmations: number;
34
+ withdrawCount: number;
35
+ depositCount: number;
36
+ constructor(owner: string, vaultId: bigint, struct: StarknetSpvVaultDataType, initialUtxo?: string);
37
+ constructor(serializedObj: any);
38
+ getBalances(): SpvVaultTokenBalance[];
39
+ getConfirmations(): number;
40
+ getOwner(): string;
41
+ getTokenData(): SpvVaultTokenData[];
42
+ getUtxo(): string;
43
+ getVaultId(): bigint;
44
+ getWithdrawalCount(): number;
45
+ isOpened(): boolean;
46
+ serialize(): any;
47
+ updateState(withdrawalTxOrEvent: SpvVaultClaimEvent | SpvVaultCloseEvent | SpvVaultOpenEvent | SpvVaultDepositEvent | StarknetSpvWithdrawalData): void;
48
+ getDepositCount(): number;
49
+ }
@@ -1,145 +1,145 @@
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
- class StarknetSpvVaultData extends base_1.SpvVaultData {
9
- constructor(ownerOrObj, vaultId, struct, initialUtxo) {
10
- super();
11
- if (typeof (ownerOrObj) === "string") {
12
- this.owner = ownerOrObj;
13
- this.vaultId = vaultId;
14
- this.relayContract = (0, Utils_1.toHex)(struct.relay_contract);
15
- this.token0 = {
16
- token: (0, Utils_1.toHex)(struct.token_0),
17
- multiplier: (0, Utils_1.toBigInt)(struct.token_0_multiplier),
18
- rawAmount: (0, Utils_1.toBigInt)(struct.token_0_amount)
19
- };
20
- this.token1 = {
21
- token: (0, Utils_1.toHex)(struct.token_1),
22
- multiplier: (0, Utils_1.toBigInt)(struct.token_1_multiplier),
23
- rawAmount: (0, Utils_1.toBigInt)(struct.token_1_amount)
24
- };
25
- const txHash = buffer_1.Buffer.from((0, Utils_1.toBigInt)(struct.utxo["0"]).toString(16).padStart(64, "0"), "hex");
26
- const vout = (0, Utils_1.toBigInt)(struct.utxo["1"]);
27
- this.utxo = txHash.reverse().toString("hex") + ":" + vout.toString(10);
28
- this.confirmations = Number((0, Utils_1.toBigInt)(struct.confirmations));
29
- this.withdrawCount = Number((0, Utils_1.toBigInt)(struct.withdraw_count));
30
- this.depositCount = Number((0, Utils_1.toBigInt)(struct.deposit_count));
31
- this.initialUtxo = initialUtxo;
32
- }
33
- else {
34
- this.owner = ownerOrObj.owner;
35
- this.vaultId = BigInt(ownerOrObj.vaultId);
36
- this.relayContract = ownerOrObj.relayContract;
37
- this.token0 = {
38
- token: ownerOrObj.token0.token,
39
- multiplier: BigInt(ownerOrObj.token0.multiplier),
40
- rawAmount: BigInt(ownerOrObj.token0.rawAmount)
41
- };
42
- this.token1 = {
43
- token: ownerOrObj.token1.token,
44
- multiplier: BigInt(ownerOrObj.token1.multiplier),
45
- rawAmount: BigInt(ownerOrObj.token1.rawAmount)
46
- };
47
- this.utxo = ownerOrObj.utxo;
48
- this.confirmations = ownerOrObj.confirmations;
49
- this.withdrawCount = ownerOrObj.withdrawCount;
50
- this.depositCount = ownerOrObj.depositCount;
51
- this.initialUtxo = ownerOrObj.initialUtxo;
52
- }
53
- }
54
- getBalances() {
55
- return [
56
- { ...this.token0, scaledAmount: this.token0.rawAmount * this.token0.multiplier },
57
- { ...this.token1, scaledAmount: this.token1.rawAmount * this.token1.multiplier }
58
- ];
59
- }
60
- getConfirmations() {
61
- return this.confirmations;
62
- }
63
- getOwner() {
64
- return this.owner;
65
- }
66
- getTokenData() {
67
- return [this.token0, this.token1];
68
- }
69
- getUtxo() {
70
- return this.isOpened() ? this.utxo : this.initialUtxo;
71
- }
72
- getVaultId() {
73
- return this.vaultId;
74
- }
75
- getWithdrawalCount() {
76
- return this.withdrawCount;
77
- }
78
- isOpened() {
79
- return this.utxo !== "0000000000000000000000000000000000000000000000000000000000000000:0";
80
- }
81
- serialize() {
82
- return {
83
- type: "STARKNET",
84
- owner: this.owner,
85
- vaultId: this.vaultId.toString(10),
86
- relayContract: this.relayContract,
87
- token0: {
88
- token: this.token0.token,
89
- multiplier: this.token0.multiplier.toString(10),
90
- rawAmount: this.token0.rawAmount.toString(10)
91
- },
92
- token1: {
93
- token: this.token1.token,
94
- multiplier: this.token1.multiplier.toString(10),
95
- rawAmount: this.token1.rawAmount.toString(10)
96
- },
97
- utxo: this.utxo,
98
- confirmations: this.confirmations,
99
- withdrawCount: this.withdrawCount,
100
- depositCount: this.depositCount,
101
- initialUtxo: this.initialUtxo
102
- };
103
- }
104
- updateState(withdrawalTxOrEvent) {
105
- if (withdrawalTxOrEvent instanceof base_1.SpvVaultClaimEvent) {
106
- if (withdrawalTxOrEvent.withdrawCount <= this.withdrawCount)
107
- return;
108
- this.token0.rawAmount -= withdrawalTxOrEvent.amounts[0];
109
- this.token1.rawAmount -= withdrawalTxOrEvent.amounts[1];
110
- this.withdrawCount = withdrawalTxOrEvent.withdrawCount;
111
- this.utxo = withdrawalTxOrEvent.btcTxId + ":0";
112
- }
113
- if (withdrawalTxOrEvent instanceof base_1.SpvVaultCloseEvent) {
114
- this.token0.rawAmount = 0n;
115
- this.token1.rawAmount = 0n;
116
- this.utxo = "0000000000000000000000000000000000000000000000000000000000000000:0";
117
- }
118
- if (withdrawalTxOrEvent instanceof base_1.SpvVaultOpenEvent) {
119
- if (this.isOpened())
120
- return;
121
- this.utxo = withdrawalTxOrEvent.btcTxId + ":" + withdrawalTxOrEvent.vout;
122
- }
123
- if (withdrawalTxOrEvent instanceof base_1.SpvVaultDepositEvent) {
124
- if (withdrawalTxOrEvent.depositCount <= this.depositCount)
125
- return;
126
- this.token0.rawAmount += withdrawalTxOrEvent.amounts[0];
127
- this.token1.rawAmount += withdrawalTxOrEvent.amounts[1];
128
- this.depositCount = withdrawalTxOrEvent.depositCount;
129
- }
130
- if (withdrawalTxOrEvent instanceof StarknetSpvWithdrawalData_1.StarknetSpvWithdrawalData) {
131
- if (withdrawalTxOrEvent.getSpentVaultUtxo() !== this.utxo)
132
- return;
133
- const amounts = withdrawalTxOrEvent.getTotalOutput();
134
- this.token0.rawAmount -= amounts[0];
135
- this.token1.rawAmount -= amounts[1];
136
- this.withdrawCount++;
137
- this.utxo = withdrawalTxOrEvent.btcTx.txid + ":0";
138
- }
139
- }
140
- getDepositCount() {
141
- return this.depositCount;
142
- }
143
- }
144
- exports.StarknetSpvVaultData = StarknetSpvVaultData;
145
- 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
+ class StarknetSpvVaultData extends base_1.SpvVaultData {
9
+ constructor(ownerOrObj, vaultId, struct, initialUtxo) {
10
+ super();
11
+ if (typeof (ownerOrObj) === "string") {
12
+ this.owner = ownerOrObj;
13
+ this.vaultId = vaultId;
14
+ this.relayContract = (0, Utils_1.toHex)(struct.relay_contract);
15
+ this.token0 = {
16
+ token: (0, Utils_1.toHex)(struct.token_0),
17
+ multiplier: (0, Utils_1.toBigInt)(struct.token_0_multiplier),
18
+ rawAmount: (0, Utils_1.toBigInt)(struct.token_0_amount)
19
+ };
20
+ this.token1 = {
21
+ token: (0, Utils_1.toHex)(struct.token_1),
22
+ multiplier: (0, Utils_1.toBigInt)(struct.token_1_multiplier),
23
+ rawAmount: (0, Utils_1.toBigInt)(struct.token_1_amount)
24
+ };
25
+ const txHash = buffer_1.Buffer.from((0, Utils_1.toBigInt)(struct.utxo["0"]).toString(16).padStart(64, "0"), "hex");
26
+ const vout = (0, Utils_1.toBigInt)(struct.utxo["1"]);
27
+ this.utxo = txHash.reverse().toString("hex") + ":" + vout.toString(10);
28
+ this.confirmations = Number((0, Utils_1.toBigInt)(struct.confirmations));
29
+ this.withdrawCount = Number((0, Utils_1.toBigInt)(struct.withdraw_count));
30
+ this.depositCount = Number((0, Utils_1.toBigInt)(struct.deposit_count));
31
+ this.initialUtxo = initialUtxo;
32
+ }
33
+ else {
34
+ this.owner = ownerOrObj.owner;
35
+ this.vaultId = BigInt(ownerOrObj.vaultId);
36
+ this.relayContract = ownerOrObj.relayContract;
37
+ this.token0 = {
38
+ token: ownerOrObj.token0.token,
39
+ multiplier: BigInt(ownerOrObj.token0.multiplier),
40
+ rawAmount: BigInt(ownerOrObj.token0.rawAmount)
41
+ };
42
+ this.token1 = {
43
+ token: ownerOrObj.token1.token,
44
+ multiplier: BigInt(ownerOrObj.token1.multiplier),
45
+ rawAmount: BigInt(ownerOrObj.token1.rawAmount)
46
+ };
47
+ this.utxo = ownerOrObj.utxo;
48
+ this.confirmations = ownerOrObj.confirmations;
49
+ this.withdrawCount = ownerOrObj.withdrawCount;
50
+ this.depositCount = ownerOrObj.depositCount;
51
+ this.initialUtxo = ownerOrObj.initialUtxo;
52
+ }
53
+ }
54
+ getBalances() {
55
+ return [
56
+ { ...this.token0, scaledAmount: this.token0.rawAmount * this.token0.multiplier },
57
+ { ...this.token1, scaledAmount: this.token1.rawAmount * this.token1.multiplier }
58
+ ];
59
+ }
60
+ getConfirmations() {
61
+ return this.confirmations;
62
+ }
63
+ getOwner() {
64
+ return this.owner;
65
+ }
66
+ getTokenData() {
67
+ return [this.token0, this.token1];
68
+ }
69
+ getUtxo() {
70
+ return this.isOpened() ? this.utxo : this.initialUtxo;
71
+ }
72
+ getVaultId() {
73
+ return this.vaultId;
74
+ }
75
+ getWithdrawalCount() {
76
+ return this.withdrawCount;
77
+ }
78
+ isOpened() {
79
+ return this.utxo !== "0000000000000000000000000000000000000000000000000000000000000000:0";
80
+ }
81
+ serialize() {
82
+ return {
83
+ type: "STARKNET",
84
+ owner: this.owner,
85
+ vaultId: this.vaultId.toString(10),
86
+ relayContract: this.relayContract,
87
+ token0: {
88
+ token: this.token0.token,
89
+ multiplier: this.token0.multiplier.toString(10),
90
+ rawAmount: this.token0.rawAmount.toString(10)
91
+ },
92
+ token1: {
93
+ token: this.token1.token,
94
+ multiplier: this.token1.multiplier.toString(10),
95
+ rawAmount: this.token1.rawAmount.toString(10)
96
+ },
97
+ utxo: this.utxo,
98
+ confirmations: this.confirmations,
99
+ withdrawCount: this.withdrawCount,
100
+ depositCount: this.depositCount,
101
+ initialUtxo: this.initialUtxo
102
+ };
103
+ }
104
+ updateState(withdrawalTxOrEvent) {
105
+ if (withdrawalTxOrEvent instanceof base_1.SpvVaultClaimEvent) {
106
+ if (withdrawalTxOrEvent.withdrawCount <= this.withdrawCount)
107
+ return;
108
+ this.token0.rawAmount -= withdrawalTxOrEvent.amounts[0];
109
+ this.token1.rawAmount -= withdrawalTxOrEvent.amounts[1];
110
+ this.withdrawCount = withdrawalTxOrEvent.withdrawCount;
111
+ this.utxo = withdrawalTxOrEvent.btcTxId + ":0";
112
+ }
113
+ if (withdrawalTxOrEvent instanceof base_1.SpvVaultCloseEvent) {
114
+ this.token0.rawAmount = 0n;
115
+ this.token1.rawAmount = 0n;
116
+ this.utxo = "0000000000000000000000000000000000000000000000000000000000000000:0";
117
+ }
118
+ if (withdrawalTxOrEvent instanceof base_1.SpvVaultOpenEvent) {
119
+ if (this.isOpened())
120
+ return;
121
+ this.utxo = withdrawalTxOrEvent.btcTxId + ":" + withdrawalTxOrEvent.vout;
122
+ }
123
+ if (withdrawalTxOrEvent instanceof base_1.SpvVaultDepositEvent) {
124
+ if (withdrawalTxOrEvent.depositCount <= this.depositCount)
125
+ return;
126
+ this.token0.rawAmount += withdrawalTxOrEvent.amounts[0];
127
+ this.token1.rawAmount += withdrawalTxOrEvent.amounts[1];
128
+ this.depositCount = withdrawalTxOrEvent.depositCount;
129
+ }
130
+ if (withdrawalTxOrEvent instanceof StarknetSpvWithdrawalData_1.StarknetSpvWithdrawalData) {
131
+ if (withdrawalTxOrEvent.getSpentVaultUtxo() !== this.utxo)
132
+ return;
133
+ const amounts = withdrawalTxOrEvent.getTotalOutput();
134
+ this.token0.rawAmount -= amounts[0];
135
+ this.token1.rawAmount -= amounts[1];
136
+ this.withdrawCount++;
137
+ this.utxo = withdrawalTxOrEvent.btcTx.txid + ":0";
138
+ }
139
+ }
140
+ getDepositCount() {
141
+ return this.depositCount;
142
+ }
143
+ }
144
+ exports.StarknetSpvVaultData = StarknetSpvVaultData;
145
+ base_1.SpvVaultData.deserializers["STARKNET"] = StarknetSpvVaultData;
@@ -1,25 +1,25 @@
1
- import { SpvWithdrawalTransactionData } from "@atomiqlabs/base";
2
- import { Buffer } from "buffer";
3
- import { BigNumberish } from "starknet";
4
- export declare class StarknetSpvWithdrawalData extends SpvWithdrawalTransactionData {
5
- protected fromOpReturnData(data: Buffer): {
6
- recipient: string;
7
- rawAmounts: bigint[];
8
- executionHash: string;
9
- };
10
- isRecipient(address: string): boolean;
11
- getTxHash(): bigint;
12
- getFrontingAmount(): bigint[];
13
- serialize(): any;
14
- serializeToStruct(): {
15
- recipient: string;
16
- amount: Record<number, boolean | object | BigNumberish>;
17
- caller_fee: Record<number, boolean | object | BigNumberish>;
18
- fronting_fee: Record<number, boolean | object | BigNumberish>;
19
- execution_handler_fee_amount_0: bigint;
20
- execution_hash: bigint;
21
- execution_expiry: bigint;
22
- };
23
- serializeToFelts(): BigNumberish[];
24
- getFrontingId(): string;
25
- }
1
+ import { SpvWithdrawalTransactionData } from "@atomiqlabs/base";
2
+ import { Buffer } from "buffer";
3
+ import { BigNumberish } from "starknet";
4
+ export declare class StarknetSpvWithdrawalData extends SpvWithdrawalTransactionData {
5
+ protected fromOpReturnData(data: Buffer): {
6
+ recipient: string;
7
+ rawAmounts: bigint[];
8
+ executionHash: string;
9
+ };
10
+ isRecipient(address: string): boolean;
11
+ getTxHash(): bigint;
12
+ getFrontingAmount(): bigint[];
13
+ serialize(): any;
14
+ serializeToStruct(): {
15
+ recipient: string;
16
+ amount: Record<number, boolean | object | BigNumberish>;
17
+ caller_fee: Record<number, boolean | object | BigNumberish>;
18
+ fronting_fee: Record<number, boolean | object | BigNumberish>;
19
+ execution_handler_fee_amount_0: bigint;
20
+ execution_hash: bigint;
21
+ execution_expiry: bigint;
22
+ };
23
+ serializeToFelts(): BigNumberish[];
24
+ getFrontingId(): string;
25
+ }
@@ -1,72 +1,72 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StarknetSpvWithdrawalData = void 0;
4
- const base_1 = require("@atomiqlabs/base");
5
- const buffer_1 = require("buffer");
6
- const starknet_1 = require("starknet");
7
- const Utils_1 = require("../../utils/Utils");
8
- const StarknetSpvVaultContract_1 = require("./StarknetSpvVaultContract");
9
- class StarknetSpvWithdrawalData extends base_1.SpvWithdrawalTransactionData {
10
- fromOpReturnData(data) {
11
- return StarknetSpvVaultContract_1.StarknetSpvVaultContract.fromOpReturnData(data);
12
- }
13
- isRecipient(address) {
14
- return this.getRecipient().toLowerCase() === address.toLowerCase();
15
- }
16
- getTxHash() {
17
- return BigInt("0x" + buffer_1.Buffer.from(this.btcTx.txid, "hex").reverse().toString("hex"));
18
- }
19
- getFrontingAmount() {
20
- return [this.rawAmounts[0] + this.getExecutionFee()[0], this.rawAmounts[1]];
21
- }
22
- serialize() {
23
- return {
24
- type: "STARKNET",
25
- ...super.serialize()
26
- };
27
- }
28
- serializeToStruct() {
29
- const callerFee = this.getCallerFee();
30
- const frontingFee = this.getFrontingFee();
31
- const executionFee = this.getExecutionFee();
32
- return {
33
- recipient: this.recipient,
34
- amount: starknet_1.cairo.tuple(this.rawAmounts[0], this.rawAmounts[1]),
35
- caller_fee: starknet_1.cairo.tuple(callerFee[0], callerFee[1]),
36
- fronting_fee: starknet_1.cairo.tuple(frontingFee[0], frontingFee[1]),
37
- execution_handler_fee_amount_0: executionFee[0],
38
- execution_hash: (0, Utils_1.toBigInt)(this.executionHash) ?? 0n,
39
- execution_expiry: BigInt(this.executionExpiry)
40
- };
41
- }
42
- serializeToFelts() {
43
- const callerFee = this.getCallerFee();
44
- const frontingFee = this.getFrontingFee();
45
- const executionFee = this.getExecutionFee();
46
- return [
47
- this.recipient,
48
- this.rawAmounts[0],
49
- this.rawAmounts[1],
50
- callerFee[0],
51
- callerFee[1],
52
- frontingFee[0],
53
- frontingFee[1],
54
- executionFee[0],
55
- (0, Utils_1.toBigInt)(this.executionHash) ?? 0n,
56
- BigInt(this.executionExpiry)
57
- ];
58
- }
59
- getFrontingId() {
60
- const txHashU256 = starknet_1.cairo.uint256(base_1.BigIntBufferUtils.fromBuffer(buffer_1.Buffer.from(this.btcTx.txid), "le"));
61
- let frontingId = starknet_1.hash.computePoseidonHashOnElements([
62
- txHashU256.low,
63
- txHashU256.high,
64
- ...this.serializeToFelts()
65
- ]);
66
- if (frontingId.startsWith("0x"))
67
- frontingId = frontingId.slice(2);
68
- return frontingId.padStart(64, "0");
69
- }
70
- }
71
- exports.StarknetSpvWithdrawalData = StarknetSpvWithdrawalData;
72
- base_1.SpvWithdrawalTransactionData.deserializers["STARKNET"] = StarknetSpvWithdrawalData;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StarknetSpvWithdrawalData = void 0;
4
+ const base_1 = require("@atomiqlabs/base");
5
+ const buffer_1 = require("buffer");
6
+ const starknet_1 = require("starknet");
7
+ const Utils_1 = require("../../utils/Utils");
8
+ const StarknetSpvVaultContract_1 = require("./StarknetSpvVaultContract");
9
+ class StarknetSpvWithdrawalData extends base_1.SpvWithdrawalTransactionData {
10
+ fromOpReturnData(data) {
11
+ return StarknetSpvVaultContract_1.StarknetSpvVaultContract.fromOpReturnData(data);
12
+ }
13
+ isRecipient(address) {
14
+ return this.getRecipient().toLowerCase() === address.toLowerCase();
15
+ }
16
+ getTxHash() {
17
+ return BigInt("0x" + buffer_1.Buffer.from(this.btcTx.txid, "hex").reverse().toString("hex"));
18
+ }
19
+ getFrontingAmount() {
20
+ return [this.rawAmounts[0] + this.getExecutionFee()[0], this.rawAmounts[1]];
21
+ }
22
+ serialize() {
23
+ return {
24
+ type: "STARKNET",
25
+ ...super.serialize()
26
+ };
27
+ }
28
+ serializeToStruct() {
29
+ const callerFee = this.getCallerFee();
30
+ const frontingFee = this.getFrontingFee();
31
+ const executionFee = this.getExecutionFee();
32
+ return {
33
+ recipient: this.recipient,
34
+ amount: starknet_1.cairo.tuple(this.rawAmounts[0], this.rawAmounts[1]),
35
+ caller_fee: starknet_1.cairo.tuple(callerFee[0], callerFee[1]),
36
+ fronting_fee: starknet_1.cairo.tuple(frontingFee[0], frontingFee[1]),
37
+ execution_handler_fee_amount_0: executionFee[0],
38
+ execution_hash: (0, Utils_1.toBigInt)(this.executionHash) ?? 0n,
39
+ execution_expiry: BigInt(this.executionExpiry)
40
+ };
41
+ }
42
+ serializeToFelts() {
43
+ const callerFee = this.getCallerFee();
44
+ const frontingFee = this.getFrontingFee();
45
+ const executionFee = this.getExecutionFee();
46
+ return [
47
+ this.recipient,
48
+ this.rawAmounts[0],
49
+ this.rawAmounts[1],
50
+ callerFee[0],
51
+ callerFee[1],
52
+ frontingFee[0],
53
+ frontingFee[1],
54
+ executionFee[0],
55
+ (0, Utils_1.toBigInt)(this.executionHash) ?? 0n,
56
+ BigInt(this.executionExpiry)
57
+ ];
58
+ }
59
+ getFrontingId() {
60
+ const txHashU256 = starknet_1.cairo.uint256(base_1.BigIntBufferUtils.fromBuffer(buffer_1.Buffer.from(this.btcTx.txid), "le"));
61
+ let frontingId = starknet_1.hash.computePoseidonHashOnElements([
62
+ txHashU256.low,
63
+ txHashU256.high,
64
+ ...this.serializeToFelts()
65
+ ]);
66
+ if (frontingId.startsWith("0x"))
67
+ frontingId = frontingId.slice(2);
68
+ return frontingId.padStart(64, "0");
69
+ }
70
+ }
71
+ exports.StarknetSpvWithdrawalData = StarknetSpvWithdrawalData;
72
+ base_1.SpvWithdrawalTransactionData.deserializers["STARKNET"] = StarknetSpvWithdrawalData;