@atomiqlabs/chain-starknet 4.0.0-dev.9 → 5.0.0

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 (74) hide show
  1. package/dist/starknet/StarknetInitializer.d.ts +1 -9
  2. package/dist/starknet/StarknetInitializer.js +3 -8
  3. package/dist/starknet/btcrelay/StarknetBtcRelay.js +5 -5
  4. package/dist/starknet/chain/StarknetAction.d.ts +10 -2
  5. package/dist/starknet/chain/StarknetAction.js +21 -21
  6. package/dist/starknet/chain/modules/StarknetAccounts.js +1 -1
  7. package/dist/starknet/chain/modules/StarknetFees.d.ts +8 -30
  8. package/dist/starknet/chain/modules/StarknetFees.js +26 -40
  9. package/dist/starknet/chain/modules/StarknetSignatures.js +1 -1
  10. package/dist/starknet/chain/modules/StarknetTokens.d.ts +4 -6
  11. package/dist/starknet/chain/modules/StarknetTokens.js +2 -2
  12. package/dist/starknet/chain/modules/StarknetTransactions.js +2 -2
  13. package/dist/starknet/events/StarknetChainEventsBrowser.d.ts +2 -1
  14. package/dist/starknet/events/StarknetChainEventsBrowser.js +3 -1
  15. package/dist/starknet/spv_swap/StarknetSpvVaultContract.d.ts +2 -3
  16. package/dist/starknet/spv_swap/StarknetSpvVaultContract.js +8 -14
  17. package/dist/starknet/spv_swap/StarknetSpvVaultData.js +0 -1
  18. package/dist/starknet/spv_swap/StarknetSpvWithdrawalData.d.ts +0 -1
  19. package/dist/starknet/spv_swap/StarknetSpvWithdrawalData.js +0 -11
  20. package/dist/starknet/swaps/EscrowManagerAbi.d.ts +0 -26
  21. package/dist/starknet/swaps/EscrowManagerAbi.js +0 -36
  22. package/dist/starknet/swaps/StarknetSwapContract.d.ts +2 -3
  23. package/dist/starknet/swaps/StarknetSwapContract.js +19 -6
  24. package/dist/starknet/swaps/StarknetSwapData.d.ts +1 -8
  25. package/dist/starknet/swaps/StarknetSwapData.js +7 -51
  26. package/dist/starknet/swaps/handlers/IHandler.d.ts +1 -1
  27. package/dist/starknet/swaps/handlers/claim/ClaimHandlers.d.ts +1 -1
  28. package/dist/starknet/swaps/handlers/claim/HashlockClaimHandler.d.ts +1 -1
  29. package/dist/starknet/swaps/handlers/claim/HashlockClaimHandler.js +1 -1
  30. package/dist/starknet/swaps/handlers/claim/btc/BitcoinNoncedOutputClaimHandler.d.ts +1 -1
  31. package/dist/starknet/swaps/handlers/claim/btc/BitcoinNoncedOutputClaimHandler.js +1 -1
  32. package/dist/starknet/swaps/handlers/claim/btc/BitcoinOutputClaimHandler.d.ts +1 -1
  33. package/dist/starknet/swaps/handlers/claim/btc/BitcoinOutputClaimHandler.js +1 -1
  34. package/dist/starknet/swaps/handlers/claim/btc/BitcoinTxIdClaimHandler.d.ts +1 -1
  35. package/dist/starknet/swaps/handlers/claim/btc/BitcoinTxIdClaimHandler.js +1 -1
  36. package/dist/starknet/swaps/handlers/claim/btc/IBitcoinClaimHandler.d.ts +1 -1
  37. package/dist/starknet/swaps/handlers/claim/btc/IBitcoinClaimHandler.js +1 -1
  38. package/dist/starknet/swaps/handlers/refund/TimelockRefundHandler.d.ts +1 -1
  39. package/dist/starknet/swaps/handlers/refund/TimelockRefundHandler.js +1 -1
  40. package/dist/starknet/swaps/modules/StarknetLpVault.js +2 -2
  41. package/dist/starknet/swaps/modules/StarknetSwapClaim.js +8 -8
  42. package/dist/starknet/swaps/modules/StarknetSwapInit.d.ts +0 -2
  43. package/dist/starknet/swaps/modules/StarknetSwapInit.js +10 -70
  44. package/dist/starknet/swaps/modules/StarknetSwapRefund.js +4 -4
  45. package/dist/utils/Utils.js +8 -12
  46. package/package.json +3 -3
  47. package/src/starknet/StarknetInitializer.ts +4 -17
  48. package/src/starknet/btcrelay/StarknetBtcRelay.ts +6 -9
  49. package/src/starknet/chain/StarknetAction.ts +20 -15
  50. package/src/starknet/chain/modules/StarknetAccounts.ts +1 -1
  51. package/src/starknet/chain/modules/StarknetFees.ts +31 -53
  52. package/src/starknet/chain/modules/StarknetSignatures.ts +4 -5
  53. package/src/starknet/chain/modules/StarknetTokens.ts +2 -2
  54. package/src/starknet/chain/modules/StarknetTransactions.ts +2 -2
  55. package/src/starknet/events/StarknetChainEventsBrowser.ts +3 -1
  56. package/src/starknet/spv_swap/StarknetSpvVaultContract.ts +8 -14
  57. package/src/starknet/spv_swap/StarknetSpvVaultData.ts +0 -1
  58. package/src/starknet/spv_swap/StarknetSpvWithdrawalData.ts +2 -13
  59. package/src/starknet/swaps/EscrowManagerAbi.ts +0 -36
  60. package/src/starknet/swaps/StarknetSwapContract.ts +23 -8
  61. package/src/starknet/swaps/StarknetSwapData.ts +9 -70
  62. package/src/starknet/swaps/handlers/IHandler.ts +1 -1
  63. package/src/starknet/swaps/handlers/claim/ClaimHandlers.ts +1 -1
  64. package/src/starknet/swaps/handlers/claim/HashlockClaimHandler.ts +2 -2
  65. package/src/starknet/swaps/handlers/claim/btc/BitcoinNoncedOutputClaimHandler.ts +2 -2
  66. package/src/starknet/swaps/handlers/claim/btc/BitcoinOutputClaimHandler.ts +2 -2
  67. package/src/starknet/swaps/handlers/claim/btc/BitcoinTxIdClaimHandler.ts +2 -2
  68. package/src/starknet/swaps/handlers/claim/btc/IBitcoinClaimHandler.ts +2 -2
  69. package/src/starknet/swaps/handlers/refund/TimelockRefundHandler.ts +3 -3
  70. package/src/starknet/swaps/modules/StarknetLpVault.ts +2 -2
  71. package/src/starknet/swaps/modules/StarknetSwapClaim.ts +10 -10
  72. package/src/starknet/swaps/modules/StarknetSwapInit.ts +12 -71
  73. package/src/starknet/swaps/modules/StarknetSwapRefund.ts +7 -6
  74. package/src/utils/Utils.ts +6 -10
@@ -21,38 +21,6 @@ exports.EscrowManagerAbi = [
21
21
  }
22
22
  ]
23
23
  },
24
- {
25
- "type": "struct",
26
- "name": "escrow_manager::structs::escrow::EscrowExecution",
27
- "members": [
28
- {
29
- "name": "hash",
30
- "type": "core::felt252"
31
- },
32
- {
33
- "name": "expiry",
34
- "type": "core::integer::u64"
35
- },
36
- {
37
- "name": "fee",
38
- "type": "core::integer::u256"
39
- }
40
- ]
41
- },
42
- {
43
- "type": "enum",
44
- "name": "core::option::Option::<escrow_manager::structs::escrow::EscrowExecution>",
45
- "variants": [
46
- {
47
- "name": "Some",
48
- "type": "escrow_manager::structs::escrow::EscrowExecution"
49
- },
50
- {
51
- "name": "None",
52
- "type": "()"
53
- }
54
- ]
55
- },
56
24
  {
57
25
  "type": "struct",
58
26
  "name": "escrow_manager::structs::escrow::EscrowData",
@@ -104,10 +72,6 @@ exports.EscrowManagerAbi = [
104
72
  {
105
73
  "name": "claimer_bounty",
106
74
  "type": "core::integer::u256"
107
- },
108
- {
109
- "name": "success_action",
110
- "type": "core::option::Option::<escrow_manager::structs::escrow::EscrowExecution>"
111
75
  }
112
76
  ]
113
77
  },
@@ -15,7 +15,6 @@ import { StarknetSwapClaim } from "./modules/StarknetSwapClaim";
15
15
  import { IHandler } from "./handlers/IHandler";
16
16
  import { StarknetBtcStoredHeader } from "../btcrelay/headers/StarknetBtcStoredHeader";
17
17
  export declare class StarknetSwapContract extends StarknetContractBase<typeof EscrowManagerAbi> implements SwapContract<StarknetSwapData, StarknetTx, never, StarknetPreFetchVerification, StarknetSigner, "STARKNET"> {
18
- readonly supportsInitWithoutClaimer = true;
19
18
  readonly chainId: "STARKNET";
20
19
  readonly claimWithSecretTimeout: number;
21
20
  readonly claimWithTxDataTimeout: number;
@@ -183,9 +182,9 @@ export declare class StarknetSwapContract extends StarknetContractBase<typeof Es
183
182
  /**
184
183
  * Get the estimated solana fee of the commit transaction
185
184
  */
186
- getCommitFee(signer: string, swapData: StarknetSwapData, feeRate?: string): Promise<bigint>;
185
+ getCommitFee(swapData: StarknetSwapData, feeRate?: string): Promise<bigint>;
187
186
  /**
188
187
  * Get the estimated solana transaction fee of the refund transaction
189
188
  */
190
- getRefundFee(signer: string, swapData: StarknetSwapData, feeRate?: string): Promise<bigint>;
189
+ getRefundFee(swapData: StarknetSwapData, feeRate?: string): Promise<bigint>;
191
190
  }
@@ -19,8 +19,8 @@ const ESCROW_STATE_COMMITTED = 1;
19
19
  const ESCROW_STATE_CLAIMED = 2;
20
20
  const ESCROW_STATE_REFUNDED = 3;
21
21
  const swapContractAddreses = {
22
- [starknet_1.constants.StarknetChainId.SN_SEPOLIA]: "0x030ae7fc7bbce9b8c888b1117f5573c786dd8e1541c722227b8673ac7dda70c0",
23
- [starknet_1.constants.StarknetChainId.SN_MAIN]: "0x02e1070519f27ec94dde395c8d72a5fcb144d40a786cf60b9b45395d36cc2f69"
22
+ [starknet_1.constants.StarknetChainId.SN_SEPOLIA]: "0x06874044dae5bbe712775cdb576d6aef45fc87a22ce629f2b101a7d591d4e7ca",
23
+ [starknet_1.constants.StarknetChainId.SN_MAIN]: "0x04fb26d02d2cf612566cd86cab299716d926272e9f49514670233952ecaf8f0c"
24
24
  };
25
25
  const defaultClaimAddresses = {
26
26
  [starknet_1.constants.StarknetChainId.SN_SEPOLIA]: {
@@ -47,7 +47,6 @@ const defaultRefundAddresses = {
47
47
  class StarknetSwapContract extends StarknetContractBase_1.StarknetContractBase {
48
48
  constructor(chainInterface, btcRelay, contractAddress = swapContractAddreses[chainInterface.starknetChainId], handlerAddresses) {
49
49
  super(chainInterface, contractAddress, EscrowManagerAbi_1.EscrowManagerAbi);
50
- this.supportsInitWithoutClaimer = true;
51
50
  ////////////////////////
52
51
  //// Constants
53
52
  this.chainId = "STARKNET";
@@ -76,7 +75,7 @@ class StarknetSwapContract extends StarknetContractBase_1.StarknetContractBase {
76
75
  handlerAddresses.claim = { ...defaultClaimAddresses[chainInterface.starknetChainId], ...handlerAddresses.claim };
77
76
  ClaimHandlers_1.claimHandlersList.forEach(handlerCtor => {
78
77
  const handler = new handlerCtor(handlerAddresses.claim[handlerCtor.type]);
79
- this.claimHandlersByAddress[(0, Utils_1.toHex)(handler.address)] = handler;
78
+ this.claimHandlersByAddress[handler.address] = handler;
80
79
  this.claimHandlersBySwapType[handlerCtor.type] = handler;
81
80
  });
82
81
  this.timelockRefundHandler = new TimelockRefundHandler_1.TimelockRefundHandler(handlerAddresses.refund.timelock);
@@ -255,6 +254,20 @@ class StarknetSwapContract extends StarknetContractBase_1.StarknetContractBase {
255
254
  getClaimTxId: async () => {
256
255
  const events = await this.Events.getContractBlockEvents(["escrow_manager::events::Claim"], [null, null, null, "0x" + escrowHash], blockHeight, blockHeight);
257
256
  return events.length === 0 ? null : events[0].txHash;
257
+ },
258
+ getClaimResult: async () => {
259
+ const events = await this.Events.getContractBlockEvents(["escrow_manager::events::Claim"], [null, null, null, "0x" + escrowHash], blockHeight, blockHeight);
260
+ if (events.length === 0)
261
+ return null;
262
+ const event = events[0];
263
+ const claimHandlerHex = (0, Utils_1.toHex)(event.params.claim_handler);
264
+ const claimHandler = this.claimHandlersByAddress[claimHandlerHex];
265
+ if (claimHandler == null) {
266
+ starknet_1.logger.warn("getCommitStatus(): getClaimResult(" + escrowHash + "): Unknown claim handler with claim: " + claimHandlerHex);
267
+ return null;
268
+ }
269
+ const witnessResult = claimHandler.parseWitnessResult(event.params.witness_result);
270
+ return witnessResult;
258
271
  }
259
272
  };
260
273
  default:
@@ -397,13 +410,13 @@ class StarknetSwapContract extends StarknetContractBase_1.StarknetContractBase {
397
410
  /**
398
411
  * Get the estimated solana fee of the commit transaction
399
412
  */
400
- getCommitFee(signer, swapData, feeRate) {
413
+ getCommitFee(swapData, feeRate) {
401
414
  return this.Init.getInitFee(swapData, feeRate);
402
415
  }
403
416
  /**
404
417
  * Get the estimated solana transaction fee of the refund transaction
405
418
  */
406
- getRefundFee(signer, swapData, feeRate) {
419
+ getRefundFee(swapData, feeRate) {
407
420
  return this.Refund.getRefundFee(swapData, feeRate);
408
421
  }
409
422
  }
@@ -4,11 +4,6 @@ import { StringToPrimitiveType } from "abi-wan-kanabi/dist/kanabi";
4
4
  import { EscrowManagerAbi } from "./EscrowManagerAbi";
5
5
  import { IClaimHandler } from "./handlers/claim/ClaimHandlers";
6
6
  export type StarknetSwapDataType = StringToPrimitiveType<typeof EscrowManagerAbi, "escrow_manager::structs::escrow::EscrowData">;
7
- export type StarknetSuccessAction = {
8
- executionHash: string;
9
- executionExpiry: bigint;
10
- executionFee: bigint;
11
- };
12
7
  export declare class StarknetSwapData extends SwapData {
13
8
  static toFlags(value: number | bigint | string): {
14
9
  payOut: boolean;
@@ -33,9 +28,8 @@ export declare class StarknetSwapData extends SwapData {
33
28
  securityDeposit: bigint;
34
29
  claimerBounty: bigint;
35
30
  extraData: string;
36
- successAction?: StarknetSuccessAction;
37
31
  kind: ChainSwapType;
38
- constructor(offerer: string, claimer: string, token: string, refundHandler: string, claimHandler: string, payOut: boolean, payIn: boolean, reputation: boolean, sequence: bigint, claimData: string, refundData: string, amount: bigint, feeToken: string, securityDeposit: bigint, claimerBounty: bigint, kind: ChainSwapType, extraData: string, successAction?: StarknetSuccessAction);
32
+ constructor(offerer: string, claimer: string, token: string, refundHandler: string, claimHandler: string, payOut: boolean, payIn: boolean, reputation: boolean, sequence: bigint, claimData: string, refundData: string, amount: bigint, feeToken: string, securityDeposit: bigint, claimerBounty: bigint, kind: ChainSwapType, extraData: string);
39
33
  constructor(data: any);
40
34
  getOfferer(): string;
41
35
  setOfferer(newOfferer: string): void;
@@ -70,5 +64,4 @@ export declare class StarknetSwapData extends SwapData {
70
64
  equals(other: StarknetSwapData): boolean;
71
65
  toEscrowStruct(): StarknetSwapDataType;
72
66
  static fromSerializedFeltArray(span: BigNumberish[], claimHandlerImpl: IClaimHandler<any, any>): StarknetSwapData;
73
- hasSuccessAction(): boolean;
74
67
  }
@@ -8,14 +8,6 @@ const Utils_1 = require("../../utils/Utils");
8
8
  const FLAG_PAY_OUT = 0x01n;
9
9
  const FLAG_PAY_IN = 0x02n;
10
10
  const FLAG_REPUTATION = 0x04n;
11
- function successActionEquals(a, b) {
12
- if (a != null && b != null) {
13
- return a.executionHash.toLowerCase() === b.executionHash.toLowerCase() &&
14
- a.executionExpiry === b.executionExpiry &&
15
- a.executionFee === b.executionFee;
16
- }
17
- return a === b;
18
- }
19
11
  class StarknetSwapData extends base_1.SwapData {
20
12
  static toFlags(value) {
21
13
  const val = (0, Utils_1.toBigInt)(value);
@@ -32,7 +24,7 @@ class StarknetSwapData extends base_1.SwapData {
32
24
  (this.payIn ? FLAG_PAY_IN : 0n) +
33
25
  (this.reputation ? FLAG_REPUTATION : 0n);
34
26
  }
35
- constructor(offererOrData, claimer, token, refundHandler, claimHandler, payOut, payIn, reputation, sequence, claimData, refundData, amount, feeToken, securityDeposit, claimerBounty, kind, extraData, successAction) {
27
+ constructor(offererOrData, claimer, token, refundHandler, claimHandler, payOut, payIn, reputation, sequence, claimData, refundData, amount, feeToken, securityDeposit, claimerBounty, kind, extraData) {
36
28
  super();
37
29
  if (claimer != null || token != null || refundHandler != null || claimHandler != null ||
38
30
  payOut != null || payIn != null || reputation != null || sequence != null || claimData != null || refundData != null ||
@@ -54,7 +46,6 @@ class StarknetSwapData extends base_1.SwapData {
54
46
  this.claimerBounty = claimerBounty;
55
47
  this.kind = kind;
56
48
  this.extraData = extraData;
57
- this.successAction = successAction;
58
49
  }
59
50
  else {
60
51
  this.offerer = offererOrData.offerer;
@@ -74,11 +65,6 @@ class StarknetSwapData extends base_1.SwapData {
74
65
  this.claimerBounty = offererOrData.claimerBounty == null ? null : BigInt(offererOrData.claimerBounty);
75
66
  this.kind = offererOrData.kind;
76
67
  this.extraData = offererOrData.extraData;
77
- this.successAction = offererOrData.successAction == null ? null : {
78
- executionHash: offererOrData.successAction.executionHash,
79
- executionExpiry: BigInt(offererOrData.successAction.executionExpiry),
80
- executionFee: BigInt(offererOrData.successAction.executionFee),
81
- };
82
68
  }
83
69
  }
84
70
  getOfferer() {
@@ -116,12 +102,7 @@ class StarknetSwapData extends base_1.SwapData {
116
102
  securityDeposit: this.securityDeposit == null ? null : this.securityDeposit.toString(10),
117
103
  claimerBounty: this.claimerBounty == null ? null : this.claimerBounty.toString(10),
118
104
  kind: this.kind,
119
- extraData: this.extraData,
120
- successAction: this.successAction == null ? null : {
121
- executionHash: this.successAction.executionHash,
122
- executionExpiry: this.successAction.executionExpiry.toString(10),
123
- executionFee: this.successAction.executionFee.toString(10)
124
- }
105
+ extraData: this.extraData
125
106
  };
126
107
  }
127
108
  getAmount() {
@@ -149,7 +130,7 @@ class StarknetSwapData extends base_1.SwapData {
149
130
  const amountValue = starknet_1.cairo.uint256("0x" + this.amount.toString(16));
150
131
  const securityDepositValue = starknet_1.cairo.uint256("0x" + this.securityDeposit.toString(16));
151
132
  const claimerBountyValue = starknet_1.cairo.uint256("0x" + this.claimerBounty.toString(16));
152
- const elements = [
133
+ let escrowHash = starknet_1.hash.computePoseidonHashOnElements([
153
134
  this.offerer,
154
135
  this.claimer,
155
136
  this.token,
@@ -165,14 +146,7 @@ class StarknetSwapData extends base_1.SwapData {
165
146
  securityDepositValue.high,
166
147
  claimerBountyValue.low,
167
148
  claimerBountyValue.high
168
- ];
169
- if (this.successAction != null) {
170
- elements.push(this.successAction.executionHash);
171
- elements.push(this.successAction.executionExpiry);
172
- const feeValue = starknet_1.cairo.uint256("0x" + this.successAction.executionFee.toString(16));
173
- elements.push(feeValue.low, feeValue.high);
174
- }
175
- let escrowHash = starknet_1.hash.computePoseidonHashOnElements(elements);
149
+ ]);
176
150
  if (escrowHash.startsWith("0x"))
177
151
  escrowHash = escrowHash.slice(2);
178
152
  return escrowHash.padStart(64, "0");
@@ -269,8 +243,7 @@ class StarknetSwapData extends base_1.SwapData {
269
243
  other.refundData.toLowerCase() === this.refundData.toLowerCase() &&
270
244
  other.amount === this.amount &&
271
245
  other.securityDeposit === this.securityDeposit &&
272
- other.claimerBounty === this.claimerBounty &&
273
- successActionEquals(other.successAction, this.successAction);
246
+ other.claimerBounty === this.claimerBounty;
274
247
  }
275
248
  toEscrowStruct() {
276
249
  return {
@@ -285,12 +258,7 @@ class StarknetSwapData extends base_1.SwapData {
285
258
  amount: starknet_1.cairo.uint256((0, Utils_1.toBigInt)(this.amount)),
286
259
  fee_token: this.feeToken,
287
260
  security_deposit: starknet_1.cairo.uint256((0, Utils_1.toBigInt)(this.securityDeposit)),
288
- claimer_bounty: starknet_1.cairo.uint256((0, Utils_1.toBigInt)(this.claimerBounty)),
289
- success_action: new starknet_1.CairoOption(this.successAction == null ? starknet_1.CairoOptionVariant.None : starknet_1.CairoOptionVariant.Some, this.successAction == null ? undefined : {
290
- hash: this.successAction.executionHash,
291
- expiry: this.successAction.executionExpiry,
292
- fee: starknet_1.cairo.uint256(this.successAction.executionFee)
293
- })
261
+ claimer_bounty: starknet_1.cairo.uint256((0, Utils_1.toBigInt)(this.claimerBounty))
294
262
  };
295
263
  }
296
264
  static fromSerializedFeltArray(span, claimHandlerImpl) {
@@ -306,19 +274,7 @@ class StarknetSwapData extends base_1.SwapData {
306
274
  const feeToken = (0, Utils_1.toHex)(span.shift());
307
275
  const securityDeposit = (0, Utils_1.toBigInt)({ low: span.shift(), high: span.shift() });
308
276
  const claimerBounty = (0, Utils_1.toBigInt)({ low: span.shift(), high: span.shift() });
309
- const hasSuccessAction = (0, Utils_1.toBigInt)(span.shift()) === 0n;
310
- let successAction = null;
311
- if (hasSuccessAction) {
312
- successAction = {
313
- executionHash: (0, Utils_1.toHex)(span.shift()),
314
- executionExpiry: (0, Utils_1.toBigInt)(span.shift()),
315
- executionFee: (0, Utils_1.toBigInt)({ low: span.shift(), high: span.shift() })
316
- };
317
- }
318
- return new StarknetSwapData(offerer, claimer, token, refundHandler, claimHandler, payOut, payIn, reputation, sequence, claimData, refundData, amount, feeToken, securityDeposit, claimerBounty, claimHandlerImpl.getType(), null, successAction);
319
- }
320
- hasSuccessAction() {
321
- return this.successAction != null;
277
+ return new StarknetSwapData(offerer, claimer, token, refundHandler, claimHandler, payOut, payIn, reputation, sequence, claimData, refundData, amount, feeToken, securityDeposit, claimerBounty, claimHandlerImpl.getType(), null);
322
278
  }
323
279
  }
324
280
  exports.StarknetSwapData = StarknetSwapData;
@@ -1,7 +1,7 @@
1
1
  import { StarknetSwapData } from "../StarknetSwapData";
2
2
  import { BigNumberish } from "starknet";
3
+ import { StarknetGas } from "../../chain/StarknetAction";
3
4
  import { StarknetTx } from "../../chain/modules/StarknetTransactions";
4
- import { StarknetGas } from "../../chain/modules/StarknetFees";
5
5
  export interface IHandler<TCommitmentData, TWitnessData> {
6
6
  readonly address: string;
7
7
  getCommitment(data: TCommitmentData): BigNumberish;
@@ -1,7 +1,7 @@
1
1
  import { ChainSwapType } from "@atomiqlabs/base";
2
+ import { StarknetGas } from "../../../chain/StarknetAction";
2
3
  import { IHandler } from "../IHandler";
3
4
  import { BigNumberish } from "starknet";
4
- import { StarknetGas } from "../../../chain/modules/StarknetFees";
5
5
  export interface IClaimHandler<C, W> extends IHandler<C, W> {
6
6
  getType(): ChainSwapType;
7
7
  parseWitnessResult(result: BigNumberish[]): string;
@@ -1,10 +1,10 @@
1
1
  import { StarknetSwapData } from "../../StarknetSwapData";
2
2
  import { BigNumberish } from "starknet";
3
3
  import { ChainSwapType } from "@atomiqlabs/base";
4
+ import { StarknetGas } from "../../../chain/StarknetAction";
4
5
  import { Buffer } from "buffer";
5
6
  import { StarknetTx } from "../../../chain/modules/StarknetTransactions";
6
7
  import { IClaimHandler } from "./ClaimHandlers";
7
- import { StarknetGas } from "../../../chain/modules/StarknetFees";
8
8
  export declare class HashlockClaimHandler implements IClaimHandler<Buffer, string> {
9
9
  readonly address: string;
10
10
  static readonly type: ChainSwapType;
@@ -41,4 +41,4 @@ class HashlockClaimHandler {
41
41
  }
42
42
  exports.HashlockClaimHandler = HashlockClaimHandler;
43
43
  HashlockClaimHandler.type = base_1.ChainSwapType.HTLC;
44
- HashlockClaimHandler.gas = { l1DataGas: 0, l2Gas: 800 * 40000, l1Gas: 0 };
44
+ HashlockClaimHandler.gas = { l1: 750 };
@@ -1,11 +1,11 @@
1
1
  import { StarknetSwapData } from "../../../StarknetSwapData";
2
+ import { StarknetGas } from "../../../../chain/StarknetAction";
2
3
  import { ChainSwapType } from "@atomiqlabs/base";
3
4
  import { BigNumberish } from "starknet";
4
5
  import { StarknetTx } from "../../../../chain/modules/StarknetTransactions";
5
6
  import { BitcoinCommitmentData, IBitcoinClaimHandler } from "./IBitcoinClaimHandler";
6
7
  import { BitcoinOutputWitnessData } from "./BitcoinOutputClaimHandler";
7
8
  import { Buffer } from "buffer";
8
- import { StarknetGas } from "../../../../chain/modules/StarknetFees";
9
9
  export type BitcoinNoncedOutputCommitmentData = {
10
10
  output: Buffer;
11
11
  amount: bigint;
@@ -45,4 +45,4 @@ class BitcoinNoncedOutputClaimHandler extends IBitcoinClaimHandler_1.IBitcoinCla
45
45
  }
46
46
  exports.BitcoinNoncedOutputClaimHandler = BitcoinNoncedOutputClaimHandler;
47
47
  BitcoinNoncedOutputClaimHandler.type = base_1.ChainSwapType.CHAIN_NONCED;
48
- BitcoinNoncedOutputClaimHandler.gas = { l1DataGas: 0, l2Gas: 20000 * 40000, l1Gas: 0 };
48
+ BitcoinNoncedOutputClaimHandler.gas = { l1: 20000 };
@@ -1,10 +1,10 @@
1
1
  import { StarknetSwapData } from "../../../StarknetSwapData";
2
+ import { StarknetGas } from "../../../../chain/StarknetAction";
2
3
  import { ChainSwapType } from "@atomiqlabs/base";
3
4
  import { BigNumberish } from "starknet";
4
5
  import { StarknetTx } from "../../../../chain/modules/StarknetTransactions";
5
6
  import { BitcoinCommitmentData, BitcoinWitnessData, IBitcoinClaimHandler } from "./IBitcoinClaimHandler";
6
7
  import { Buffer } from "buffer";
7
- import { StarknetGas } from "../../../../chain/modules/StarknetFees";
8
8
  export type BitcoinOutputCommitmentData = {
9
9
  output: Buffer;
10
10
  amount: bigint;
@@ -37,4 +37,4 @@ class BitcoinOutputClaimHandler extends IBitcoinClaimHandler_1.IBitcoinClaimHand
37
37
  }
38
38
  exports.BitcoinOutputClaimHandler = BitcoinOutputClaimHandler;
39
39
  BitcoinOutputClaimHandler.type = base_1.ChainSwapType.CHAIN;
40
- BitcoinOutputClaimHandler.gas = { l1DataGas: 0, l2Gas: 20000 * 40000, l1Gas: 0 };
40
+ BitcoinOutputClaimHandler.gas = { l1: 20000 };
@@ -1,9 +1,9 @@
1
1
  import { StarknetSwapData } from "../../../StarknetSwapData";
2
+ import { StarknetGas } from "../../../../chain/StarknetAction";
2
3
  import { ChainSwapType } from "@atomiqlabs/base";
3
4
  import { BigNumberish } from "starknet";
4
5
  import { StarknetTx } from "../../../../chain/modules/StarknetTransactions";
5
6
  import { BitcoinCommitmentData, BitcoinWitnessData, IBitcoinClaimHandler } from "./IBitcoinClaimHandler";
6
- import { StarknetGas } from "../../../../chain/modules/StarknetFees";
7
7
  export type BitcoinTxIdCommitmentData = {
8
8
  txId: string;
9
9
  };
@@ -27,4 +27,4 @@ class BitcoinTxIdClaimHandler extends IBitcoinClaimHandler_1.IBitcoinClaimHandle
27
27
  }
28
28
  exports.BitcoinTxIdClaimHandler = BitcoinTxIdClaimHandler;
29
29
  BitcoinTxIdClaimHandler.type = base_1.ChainSwapType.CHAIN_TXID;
30
- BitcoinTxIdClaimHandler.gas = { l1DataGas: 0, l2Gas: 20000 * 40000, l1Gas: 0 };
30
+ BitcoinTxIdClaimHandler.gas = { l1: 20000 };
@@ -1,11 +1,11 @@
1
1
  import { IClaimHandler } from "../ClaimHandlers";
2
2
  import { StarknetSwapData } from "../../../StarknetSwapData";
3
+ import { StarknetGas } from "../../../../chain/StarknetAction";
3
4
  import { ChainSwapType, RelaySynchronizer } from "@atomiqlabs/base";
4
5
  import { BigNumberish } from "starknet";
5
6
  import { StarknetBtcStoredHeader } from "../../../../btcrelay/headers/StarknetBtcStoredHeader";
6
7
  import { StarknetTx } from "../../../../chain/modules/StarknetTransactions";
7
8
  import { StarknetBtcRelay } from "../../../../btcrelay/StarknetBtcRelay";
8
- import { StarknetGas } from "../../../../chain/modules/StarknetFees";
9
9
  export type BitcoinCommitmentData = {
10
10
  btcRelay: StarknetBtcRelay<any>;
11
11
  confirmations: number;
@@ -49,4 +49,4 @@ class IBitcoinClaimHandler {
49
49
  exports.IBitcoinClaimHandler = IBitcoinClaimHandler;
50
50
  IBitcoinClaimHandler.address = "";
51
51
  IBitcoinClaimHandler.type = base_1.ChainSwapType.CHAIN_TXID;
52
- IBitcoinClaimHandler.gas = { l1DataGas: 0, l2Gas: 20000 * 40000, l1Gas: 0 };
52
+ IBitcoinClaimHandler.gas = { l1: 20000 };
@@ -2,7 +2,7 @@ import { StarknetTx } from "../../../chain/modules/StarknetTransactions";
2
2
  import { StarknetSwapData } from "../../StarknetSwapData";
3
3
  import { BigNumberish } from "starknet";
4
4
  import { IHandler } from "../IHandler";
5
- import { StarknetGas } from "../../../chain/modules/StarknetFees";
5
+ import { StarknetGas } from "../../../chain/StarknetAction";
6
6
  export declare class TimelockRefundHandler implements IHandler<bigint, never> {
7
7
  readonly address: string;
8
8
  static readonly gas: StarknetGas;
@@ -24,4 +24,4 @@ class TimelockRefundHandler {
24
24
  }
25
25
  }
26
26
  exports.TimelockRefundHandler = TimelockRefundHandler;
27
- TimelockRefundHandler.gas = { l1DataGas: 0, l2Gas: 4000000, l1Gas: 0 };
27
+ TimelockRefundHandler.gas = { l1: 500 };
@@ -117,6 +117,6 @@ class StarknetLpVault extends StarknetSwapModule_1.StarknetSwapModule {
117
117
  }
118
118
  exports.StarknetLpVault = StarknetLpVault;
119
119
  StarknetLpVault.GasCosts = {
120
- WITHDRAW: { l1DataGas: 500, l2Gas: 3200000, l1Gas: 0 },
121
- DEPOSIT: { l1: 500, l2Gas: 4000000, l1Gas: 0 }
120
+ WITHDRAW: { l1: 750, l2: 0 },
121
+ DEPOSIT: { l1: 750, l2: 0 }
122
122
  };
@@ -18,7 +18,7 @@ class StarknetSwapClaim extends StarknetSwapModule_1.StarknetSwapModule {
18
18
  * @private
19
19
  */
20
20
  Claim(signer, swapData, witness, claimHandlerGas) {
21
- return new StarknetAction_1.StarknetAction(signer, this.root, this.swapContract.populateTransaction.claim(swapData.toEscrowStruct(), witness), (0, StarknetFees_1.starknetGasAdd)(swapData.payOut ? StarknetSwapClaim.GasCosts.CLAIM_PAY_OUT : StarknetSwapClaim.GasCosts.CLAIM, claimHandlerGas));
21
+ return new StarknetAction_1.StarknetAction(signer, this.root, this.swapContract.populateTransaction.claim(swapData.toEscrowStruct(), witness), (0, StarknetAction_1.sumStarknetGas)(swapData.payOut ? StarknetSwapClaim.GasCosts.CLAIM_PAY_OUT : StarknetSwapClaim.GasCosts.CLAIM, claimHandlerGas));
22
22
  }
23
23
  /**
24
24
  * Creates transactions claiming the swap using a secret (for HTLC swaps)
@@ -36,7 +36,7 @@ class StarknetSwapClaim extends StarknetSwapModule_1.StarknetSwapModule {
36
36
  if (checkExpiry && await this.contract.isExpired(swapData.claimer.toString(), swapData)) {
37
37
  throw new base_1.SwapDataVerificationError("Not enough time to reliably pay the invoice");
38
38
  }
39
- const claimHandler = this.contract.claimHandlersByAddress[(0, Utils_1.toHex)(swapData.claimHandler)];
39
+ const claimHandler = this.contract.claimHandlersByAddress[swapData.claimHandler.toLowerCase()];
40
40
  if (claimHandler == null)
41
41
  throw new base_1.SwapDataVerificationError("Unknown claim handler!");
42
42
  if (claimHandler.getType() !== base_1.ChainSwapType.HTLC)
@@ -61,7 +61,7 @@ class StarknetSwapClaim extends StarknetSwapModule_1.StarknetSwapModule {
61
61
  * @param feeRate fee rate to be used for the transactions
62
62
  */
63
63
  async txsClaimWithTxData(signer, swapData, tx, requiredConfirmations, vout, commitedHeader, synchronizer, feeRate) {
64
- const claimHandler = this.contract.claimHandlersByAddress[(0, Utils_1.toHex)(swapData.claimHandler)];
64
+ const claimHandler = this.contract.claimHandlersByAddress[swapData.claimHandler.toLowerCase()];
65
65
  if (claimHandler == null)
66
66
  throw new base_1.SwapDataVerificationError("Unknown claim handler!");
67
67
  if (claimHandler.getType() !== base_1.ChainSwapType.CHAIN_NONCED &&
@@ -87,14 +87,14 @@ class StarknetSwapClaim extends StarknetSwapModule_1.StarknetSwapModule {
87
87
  async getClaimFee(swapData, feeRate) {
88
88
  feeRate ?? (feeRate = await this.root.Fees.getFeeRate());
89
89
  let gasRequired = swapData.payOut ? StarknetSwapClaim.GasCosts.CLAIM_PAY_OUT : StarknetSwapClaim.GasCosts.CLAIM;
90
- const claimHandler = this.contract.claimHandlersByAddress[(0, Utils_1.toHex)(swapData.claimHandler)];
90
+ const claimHandler = this.contract.claimHandlersByAddress[swapData.claimHandler.toLowerCase()];
91
91
  if (claimHandler != null)
92
- gasRequired = (0, StarknetFees_1.starknetGasAdd)(gasRequired, claimHandler.getGas(swapData));
93
- return StarknetFees_1.StarknetFees.getGasFee(gasRequired, feeRate);
92
+ gasRequired = (0, StarknetAction_1.sumStarknetGas)(gasRequired, claimHandler.getGas(swapData));
93
+ return StarknetFees_1.StarknetFees.getGasFee(gasRequired.l1, feeRate);
94
94
  }
95
95
  }
96
96
  exports.StarknetSwapClaim = StarknetSwapClaim;
97
97
  StarknetSwapClaim.GasCosts = {
98
- CLAIM: { l1DataGas: 750, l2Gas: 4000000, l1Gas: 0 },
99
- CLAIM_PAY_OUT: { l1DataGas: 900, l2Gas: 6000000, l1Gas: 0 }
98
+ CLAIM: { l1: 500, l2: 0 },
99
+ CLAIM_PAY_OUT: { l1: 1000, l2: 0 }
100
100
  };
@@ -10,7 +10,6 @@ export declare class StarknetSwapInit extends StarknetSwapModule {
10
10
  /**
11
11
  * bare Init action based on the data passed in swapData
12
12
  *
13
- * @param signer
14
13
  * @param swapData
15
14
  * @param timeout
16
15
  * @param signature
@@ -43,7 +42,6 @@ export declare class StarknetSwapInit extends StarknetSwapModule {
43
42
  /**
44
43
  * Checks whether the provided signature data is valid, using preFetchedData if provided and still valid
45
44
  *
46
- * @param sender
47
45
  * @param swapData
48
46
  * @param timeout
49
47
  * @param prefix