@fatsolutions/privacy-pools-core-starknet-sdk 0.0.29 → 0.0.31

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.
@@ -1,5 +1,5 @@
1
1
  import { Hash } from "@0xbow/privacy-pools-core-sdk";
2
- import { AllowArray, Call, InvokeFunctionResponse, RpcProvider, SimulatedTransaction, Account as SNAccount, TypedContractV2, UniversalDetails } from "starknet";
2
+ import { AllowArray, Call, InvokeFunctionResponse, RpcProvider, SimulateTransaction, Account as SNAccount, TypedContractV2, UniversalDetails } from "starknet";
3
3
  import { EntryPointABI } from "../abis/EntryPoint.abi.js";
4
4
  import { ERC20ABI } from "../abis/ERC20.abi.js";
5
5
  import { PrivacyPoolABI } from "../abis/PrivacyPool.abi.js";
@@ -20,23 +20,31 @@ export type Erc20Type = TypedContractV2<typeof ERC20ABI>;
20
20
  /**
21
21
  * Execution modes for contract interactions.
22
22
  */
23
- export declare enum Mode {
23
+ export declare const Mode: {
24
24
  /** Simulate the transaction without executing it */
25
- SIMULATE = "simulate",
25
+ readonly SIMULATE: "simulate";
26
26
  /** Execute the transaction on-chain */
27
- EXECUTE = "execute"
28
- }
27
+ readonly EXECUTE: "execute";
28
+ };
29
+ export type Mode = typeof Mode[keyof typeof Mode];
30
+ /** Option type for simulation mode */
31
+ export type OptionSimulate = {};
32
+ /** Option type for execution mode with optional transaction details */
33
+ export type OptionExecute = {
34
+ details?: UniversalDetails;
35
+ };
29
36
  /** Option type for simulation mode */
30
37
  export type OptionModeSimulate = {
31
- mode: Mode.SIMULATE;
38
+ mode: typeof Mode.SIMULATE;
39
+ modeOptions?: OptionSimulate;
32
40
  };
33
41
  /** Option type for execution mode with optional transaction details */
34
42
  export type OptionModeExecute = {
35
- mode: Mode.EXECUTE;
36
- details?: UniversalDetails;
43
+ mode: typeof Mode.EXECUTE;
44
+ modeOptions?: OptionExecute;
37
45
  };
38
46
  /** Union type for all possible call results */
39
- type CallResult = AllowArray<Call> | SimulatedTransaction | TransactionResponse;
47
+ type CallResult = AllowArray<Call> | Omit<SimulateTransaction, 'fee_estimation'> | TransactionResponse;
40
48
  /**
41
49
  * Service class for interacting with Privacy Pool contracts on Starknet.
42
50
  *
@@ -100,7 +108,7 @@ export declare class SNContractInteractionsService {
100
108
  * @param options - Simulation options
101
109
  * @returns A simulated transaction result
102
110
  */
103
- depositERC20(asset: StarknetAddress, amount: bigint, precommitment: bigint, options: OptionModeSimulate): Promise<SimulatedTransaction>;
111
+ depositERC20(asset: StarknetAddress, amount: bigint, precommitment: bigint, options: OptionModeSimulate): Promise<SimulateTransaction>;
104
112
  /**
105
113
  * Deposits an ERC20 token into a privacy pool and executes the transaction.
106
114
  *
@@ -127,7 +135,7 @@ export declare class SNContractInteractionsService {
127
135
  * @param options - Simulation options
128
136
  * @returns A simulated transaction result
129
137
  */
130
- depositETH(amount: bigint, precommitment: bigint, options: OptionModeSimulate): Promise<SimulatedTransaction>;
138
+ depositETH(amount: bigint, precommitment: bigint, options: OptionModeSimulate): Promise<SimulateTransaction>;
131
139
  /**
132
140
  * Deposits ETH into a privacy pool and executes the transaction.
133
141
  *
@@ -155,7 +163,7 @@ export declare class SNContractInteractionsService {
155
163
  * @param options - Simulation options
156
164
  * @returns A simulated transaction result
157
165
  */
158
- withdraw(withdrawal: Withdrawal, withdrawalProofGaraga: bigint[], scope: Hash, options: OptionModeSimulate): Promise<SimulatedTransaction>;
166
+ withdraw(withdrawal: Withdrawal, withdrawalProofGaraga: bigint[], scope: Hash, options: OptionModeSimulate): Promise<SimulateTransaction>;
159
167
  /**
160
168
  * Withdraws funds from a privacy pool and executes the transaction.
161
169
  *
@@ -184,7 +192,7 @@ export declare class SNContractInteractionsService {
184
192
  * @param options - Simulation options
185
193
  * @returns A simulated transaction result
186
194
  */
187
- relay(withdrawal: Withdrawal, withdrawalProofGaraga: bigint[], scope: Hash, options: OptionModeSimulate): Promise<SimulatedTransaction>;
195
+ relay(withdrawal: Withdrawal, withdrawalProofGaraga: bigint[], scope: Hash, options: OptionModeSimulate): Promise<SimulateTransaction>;
188
196
  /**
189
197
  * Relays a withdrawal transaction through the EntryPoint contract and executes it.
190
198
  *
@@ -211,7 +219,7 @@ export declare class SNContractInteractionsService {
211
219
  * @param options - Simulation options
212
220
  * @returns A simulated transaction result
213
221
  */
214
- ragequit(ragequitProofGaraga: bigint[], privacyPoolAddress: StarknetAddress, options: OptionModeSimulate): Promise<SimulatedTransaction>;
222
+ ragequit(ragequitProofGaraga: bigint[], privacyPoolAddress: StarknetAddress, options: OptionModeSimulate): Promise<SimulateTransaction>;
215
223
  /**
216
224
  * Performs a ragequit operation to exit a privacy pool and executes the transaction.
217
225
  *
@@ -271,10 +279,10 @@ export declare class SNContractInteractionsService {
271
279
  * @todo Implement ERC20 approval functionality
272
280
  */
273
281
  approveERC20(spenderAddress: StarknetAddress, tokenAddress: StarknetAddress, amount: bigint): Promise<Call>;
274
- approveERC20(spenderAddress: StarknetAddress, tokenAddress: StarknetAddress, amount: bigint, options: OptionModeSimulate): Promise<SimulatedTransaction>;
282
+ approveERC20(spenderAddress: StarknetAddress, tokenAddress: StarknetAddress, amount: bigint, options: OptionModeSimulate): Promise<SimulateTransaction>;
275
283
  approveERC20(spenderAddress: StarknetAddress, tokenAddress: StarknetAddress, amount: bigint, options: OptionModeExecute): Promise<TransactionResponse>;
276
284
  approveAndDeposit(entrypointAddress: StarknetAddress, tokenAddress: StarknetAddress, amount: bigint, precommitment: bigint): Promise<CallResult>;
277
- approveAndDeposit(entrypointAddress: StarknetAddress, tokenAddress: StarknetAddress, amount: bigint, precommitment: bigint, options: OptionModeSimulate): Promise<SimulatedTransaction>;
285
+ approveAndDeposit(entrypointAddress: StarknetAddress, tokenAddress: StarknetAddress, amount: bigint, precommitment: bigint, options: OptionModeSimulate): Promise<SimulateTransaction>;
278
286
  approveAndDeposit(entrypointAddress: StarknetAddress, tokenAddress: StarknetAddress, amount: bigint, precommitment: bigint, options: OptionModeExecute): Promise<TransactionResponse>;
279
287
  }
280
288
  export declare class AdminContractInteractions {
@@ -282,25 +290,25 @@ export declare class AdminContractInteractions {
282
290
  entrypoint: EntryPointType;
283
291
  constructor(contractService: SNContractInteractionsService);
284
292
  registerPool(asset: StarknetAddress, pool: StarknetAddress, minimumDepositAmount: bigint, vettingFeeBPS: bigint, maxRelayFeeBPS: bigint): Promise<Call>;
285
- registerPool(asset: StarknetAddress, pool: StarknetAddress, minimumDepositAmount: bigint, vettingFeeBPS: bigint, maxRelayFeeBPS: bigint, options: OptionModeSimulate): Promise<SimulatedTransaction>;
293
+ registerPool(asset: StarknetAddress, pool: StarknetAddress, minimumDepositAmount: bigint, vettingFeeBPS: bigint, maxRelayFeeBPS: bigint, options: OptionModeSimulate): Promise<SimulateTransaction>;
286
294
  registerPool(asset: StarknetAddress, pool: StarknetAddress, minimumDepositAmount: bigint, vettingFeeBPS: bigint, maxRelayFeeBPS: bigint, options: OptionModeExecute): Promise<InvokeFunctionResponse>;
287
295
  updateRoot(root: bigint, ipfsCID: string): Promise<Call>;
288
- updateRoot(root: bigint, ipfsCID: string, options: OptionModeSimulate): Promise<SimulatedTransaction>;
296
+ updateRoot(root: bigint, ipfsCID: string, options: OptionModeSimulate): Promise<SimulateTransaction>;
289
297
  updateRoot(root: bigint, ipfsCID: string, options: OptionModeExecute): Promise<InvokeFunctionResponse>;
290
298
  removePool(asset: StarknetAddress): Promise<Call>;
291
- removePool(asset: StarknetAddress, options: OptionModeSimulate): Promise<SimulatedTransaction>;
299
+ removePool(asset: StarknetAddress, options: OptionModeSimulate): Promise<SimulateTransaction>;
292
300
  removePool(asset: StarknetAddress, options: OptionModeExecute): Promise<InvokeFunctionResponse>;
293
301
  updatePoolConfiguration(asset: StarknetAddress, minimumDepositAmount: bigint, vettingFeeBPS: bigint, maxRelayFeeBPS: bigint): Promise<Call>;
294
- updatePoolConfiguration(asset: StarknetAddress, minimumDepositAmount: bigint, vettingFeeBPS: bigint, maxRelayFeeBPS: bigint, options: OptionModeSimulate): Promise<SimulatedTransaction>;
302
+ updatePoolConfiguration(asset: StarknetAddress, minimumDepositAmount: bigint, vettingFeeBPS: bigint, maxRelayFeeBPS: bigint, options: OptionModeSimulate): Promise<SimulateTransaction>;
295
303
  updatePoolConfiguration(asset: StarknetAddress, minimumDepositAmount: bigint, vettingFeeBPS: bigint, maxRelayFeeBPS: bigint, options: OptionModeExecute): Promise<InvokeFunctionResponse>;
296
304
  windDownPool(pool: StarknetAddress): Promise<Call>;
297
- windDownPool(pool: StarknetAddress, options: OptionModeSimulate): Promise<SimulatedTransaction>;
305
+ windDownPool(pool: StarknetAddress, options: OptionModeSimulate): Promise<SimulateTransaction>;
298
306
  windDownPool(pool: StarknetAddress, options: OptionModeExecute): Promise<InvokeFunctionResponse>;
299
307
  withdrawFees(asset: StarknetAddress, recipient: StarknetAddress): Promise<Call>;
300
- withdrawFees(asset: StarknetAddress, recipient: StarknetAddress, options: OptionModeSimulate): Promise<SimulatedTransaction>;
308
+ withdrawFees(asset: StarknetAddress, recipient: StarknetAddress, options: OptionModeSimulate): Promise<SimulateTransaction>;
301
309
  withdrawFees(asset: StarknetAddress, recipient: StarknetAddress, options: OptionModeExecute): Promise<InvokeFunctionResponse>;
302
310
  upgrade(newClassHash: string): Promise<Call>;
303
- upgrade(newClassHash: string, options: OptionModeSimulate): Promise<SimulatedTransaction>;
311
+ upgrade(newClassHash: string, options: OptionModeSimulate): Promise<SimulateTransaction>;
304
312
  upgrade(newClassHash: string, options: OptionModeExecute): Promise<InvokeFunctionResponse>;
305
313
  }
306
314
  export {};
@@ -9,14 +9,12 @@ import { executeIntent, simulateIntent } from "./transactionHandler.js";
9
9
  /**
10
10
  * Execution modes for contract interactions.
11
11
  */
12
- export var Mode;
13
- (function (Mode) {
12
+ export const Mode = {
14
13
  /** Simulate the transaction without executing it */
15
- Mode["SIMULATE"] = "simulate";
14
+ SIMULATE: "simulate",
16
15
  /** Execute the transaction on-chain */
17
- Mode["EXECUTE"] = "execute";
18
- })(Mode || (Mode = {}));
19
- ;
16
+ EXECUTE: "execute"
17
+ };
20
18
  /** Helper function for asserting instances */
21
19
  function _isAccount(x) {
22
20
  return (x.simulateTransaction !== undefined) && (x.execute !== undefined);
@@ -37,7 +35,8 @@ function _intentOptionWrapper(calls, options) {
37
35
  return simulateIntent(options.account, calls);
38
36
  }
39
37
  else if (options.mode === Mode.EXECUTE) {
40
- return executeIntent(options.account, calls, options.details);
38
+ const details = options.modeOptions?.details;
39
+ return executeIntent(options.account, calls, details);
41
40
  }
42
41
  else {
43
42
  throw StarknetSDKError.unreachable();
@@ -81,7 +80,7 @@ export class SNContractInteractionsService {
81
80
  */
82
81
  constructor(entrypointAddress, providerOrAccount) {
83
82
  this.providerOrAccount = providerOrAccount;
84
- this.entrypoint = new Contract(EntryPointABI, entrypointAddress, this.providerOrAccount).typedv2(EntryPointABI);
83
+ this.entrypoint = new Contract({ abi: EntryPointABI, address: entrypointAddress, providerOrAccount: this.providerOrAccount }).typedv2(EntryPointABI);
85
84
  }
86
85
  /**
87
86
  * Creates a typed PrivacyPool contract instance for the given address.
@@ -90,10 +89,10 @@ export class SNContractInteractionsService {
90
89
  * @returns A typed contract instance for the PrivacyPool
91
90
  */
92
91
  pool(address) {
93
- return new Contract(PrivacyPoolABI, address, this.providerOrAccount).typedv2(PrivacyPoolABI);
92
+ return new Contract({ abi: PrivacyPoolABI, address, providerOrAccount: this.providerOrAccount }).typedv2(PrivacyPoolABI);
94
93
  }
95
94
  erc20(address) {
96
- return new Contract(ERC20ABI, address, this.providerOrAccount).typedv2(ERC20ABI);
95
+ return new Contract({ abi: ERC20ABI, address, providerOrAccount: this.providerOrAccount }).typedv2(ERC20ABI);
97
96
  }
98
97
  depositERC20(asset, amount, precommitment, options) {
99
98
  const call = this.entrypoint.populate("deposit", [asset, amount, precommitment]);
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.service.js","sourceRoot":"","sources":["../../src/contracts/contracts.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contracts.service.js","sourceRoot":"","sources":["../../src/contracts/contracts.service.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import { AllowArray, Call, InvokeFunctionResponse, Account as SNAccount, SimulatedTransaction, UniversalDetails } from "starknet";
1
+ import { AllowArray, Call, InvokeFunctionResponse, Account as SNAccount, SimulateTransaction, UniversalDetails } from "starknet";
2
2
  export declare function executeIntent(account: SNAccount, calls: AllowArray<Call>, transactionDetails?: UniversalDetails): Promise<InvokeFunctionResponse>;
3
- export declare function simulateIntent(account: SNAccount, calls: AllowArray<Call>): Promise<SimulatedTransaction>;
3
+ export declare function simulateIntent(account: SNAccount, calls: AllowArray<Call>): Promise<Omit<SimulateTransaction, 'fee_estimation'>>;
@@ -1 +1 @@
1
- {"version":3,"file":"transactionHandler.js","sourceRoot":"","sources":["../../src/contracts/transactionHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwF,eAAe,EAAoB,MAAM,UAAU,CAAC;AACnJ,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAkB,EAAE,KAAuB,EAAE,kBAAqC;IAElF,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACjD,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAkB,EAAE,KAAuB;IAE3C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,mBAAmB,CAAC;QAC/C,EAAE,IAAI,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE;KACjD,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAEtB,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,iBAAiB,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACjE,MAAM,gBAAgB,CAAC,WAAW,EAAE,CAAC;IACvC,CAAC;IAED,MAAM,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC,iBAAiB,CAAC,kBAAkB,CAAC;IACnE,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC;QAC/E,MAAM,eAAe,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"transactionHandler.js","sourceRoot":"","sources":["../../src/contracts/transactionHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuF,eAAe,EAAoB,MAAM,UAAU,CAAC;AAClJ,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAkB,EAAE,KAAuB,EAAE,kBAAqC;IAElF,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACjD,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAkB,EAAE,KAAuB;IAE3C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,mBAAmB,CAAC;QAC/C,EAAE,IAAI,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE;KACjD,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAEtB,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,iBAAiB,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACjE,MAAM,gBAAgB,CAAC,WAAW,EAAE,CAAC;IACvC,CAAC;IAED,MAAM,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC,iBAAiB,CAAC,kBAAkB,CAAC;IACnE,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC;QAC/E,MAAM,eAAe,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -11,7 +11,7 @@ export declare const AbiEventName: {
11
11
  readonly Withdraw: "privacy_pools::interfaces::IPool::Withdrawn";
12
12
  readonly Ragequit: "privacy_pools::interfaces::IPool::RageQuit";
13
13
  };
14
- type AbiEventName = typeof AbiEventName[keyof typeof AbiEventName];
14
+ type AbiEventName = (typeof AbiEventName)[keyof typeof AbiEventName];
15
15
  export interface StarknetDepositedEventData {
16
16
  depositor: bigint;
17
17
  commitment: bigint;
@@ -46,6 +46,8 @@ export type StarknetEvent = StarknetDepositedEventData | StarknetWithdrawnEventD
46
46
  */
47
47
  export declare class StarknetDataService {
48
48
  private readonly provider;
49
+ private static readonly abiParser;
50
+ private readonly abiParser;
49
51
  /**
50
52
  * Initialize the Starknet data service with an RPC provider
51
53
  *
@@ -1,14 +1,14 @@
1
- import { events, hash, num } from "starknet";
1
+ import { AbiParser2, events, hash, num, } from "starknet";
2
2
  import { PrivacyPoolABI } from "./abis/PrivacyPool.abi.js";
3
- import { SNBaseErrorCode, SNDataError, StarknetSDKError } from "./errors/index.js";
3
+ import { SNBaseErrorCode, SNDataError, StarknetSDKError, } from "./errors/index.js";
4
4
  // Calculate event selectors using Starknet keccak
5
5
  export const DEPOSIT_EVENT_SELECTOR = num.toHex(hash.starknetKeccak("Deposited")); // 0x69105484e3b5f553164aa6de1f67321ea2757275a5e614365c90b9ed0a5e9b
6
6
  export const WITHDRAWAL_EVENT_SELECTOR = num.toHex(hash.starknetKeccak("Withdrawn")); // 0x36a4d15ab9e146faab90d4abc1c0cad17c4ded24551c781ba100392b5a70248
7
7
  export const RAGEQUIT_EVENT_SELECTOR = num.toHex(hash.starknetKeccak("RageQuit")); // 0x2a2469e4569da9d3c3df9bc1a2ddece1e640a89b8ecd537da96f064d64c8183
8
8
  // ABI event names for direct selection
9
- export const DEPOSIT_EVENT_ABI_NAME = 'privacy_pools::interfaces::IPool::Deposited';
10
- export const WITHDRAWAL_EVENT_ABI_NAME = 'privacy_pools::interfaces::IPool::Withdrawn';
11
- export const RAGEQUIT_EVENT_ABI_NAME = 'privacy_pools::interfaces::IPool::RageQuit';
9
+ export const DEPOSIT_EVENT_ABI_NAME = "privacy_pools::interfaces::IPool::Deposited";
10
+ export const WITHDRAWAL_EVENT_ABI_NAME = "privacy_pools::interfaces::IPool::Withdrawn";
11
+ export const RAGEQUIT_EVENT_ABI_NAME = "privacy_pools::interfaces::IPool::RageQuit";
12
12
  export const AbiEventName = {
13
13
  Deposit: DEPOSIT_EVENT_ABI_NAME,
14
14
  Withdraw: WITHDRAWAL_EVENT_ABI_NAME,
@@ -23,6 +23,8 @@ export const AbiEventName = {
23
23
  */
24
24
  export class StarknetDataService {
25
25
  provider;
26
+ static abiParser = new AbiParser2(PrivacyPoolABI);
27
+ abiParser = StarknetDataService.abiParser;
26
28
  /**
27
29
  * Initialize the Starknet data service with an RPC provider
28
30
  *
@@ -59,13 +61,13 @@ export class StarknetDataService {
59
61
  });
60
62
  // Parse all events at once using starknet.js event parser
61
63
  const abiEvents = events.getAbiEvents(PrivacyPoolABI);
62
- const parsedEvents = events.parseEvents(eventsResult, abiEvents, {}, {});
64
+ const parsedEvents = events.parseEvents(eventsResult, abiEvents, {}, {}, this.abiParser);
63
65
  return parsedEvents
64
66
  .filter((parsedEvent) => parsedEvent[DEPOSIT_EVENT_ABI_NAME] !== undefined)
65
67
  .map((parsedEvent) => ({
66
68
  eventData: parsedEvent[DEPOSIT_EVENT_ABI_NAME],
67
69
  blockNumber: parsedEvent.block_number,
68
- transactionHash: parsedEvent.transaction_hash
70
+ transactionHash: parsedEvent.transaction_hash,
69
71
  }))
70
72
  .map(({ eventData, blockNumber, transactionHash }) => ({
71
73
  depositor: num.toHex(eventData.depositor),
@@ -102,13 +104,13 @@ export class StarknetDataService {
102
104
  });
103
105
  // Parse all events at once using starknet.js event parser
104
106
  const abiEvents = events.getAbiEvents(PrivacyPoolABI);
105
- const parsedEvents = events.parseEvents(eventsResult.events, abiEvents, {}, {});
107
+ const parsedEvents = events.parseEvents(eventsResult.events, abiEvents, {}, {}, this.abiParser);
106
108
  return parsedEvents
107
109
  .filter((parsedEvent) => parsedEvent[WITHDRAWAL_EVENT_ABI_NAME] !== undefined)
108
110
  .map((parsedEvent) => ({
109
111
  eventData: parsedEvent[WITHDRAWAL_EVENT_ABI_NAME],
110
112
  blockNumber: parsedEvent.block_number,
111
- transactionHash: parsedEvent.transaction_hash
113
+ transactionHash: parsedEvent.transaction_hash,
112
114
  }))
113
115
  .map(({ eventData, blockNumber, transactionHash }) => ({
114
116
  withdrawn: eventData.withdrawnValue,
@@ -143,13 +145,13 @@ export class StarknetDataService {
143
145
  });
144
146
  // Parse all events at once using starknet.js event parser
145
147
  const abiEvents = events.getAbiEvents(PrivacyPoolABI);
146
- const parsedEvents = events.parseEvents(eventsResult.events, abiEvents, {}, {});
148
+ const parsedEvents = events.parseEvents(eventsResult.events, abiEvents, {}, {}, this.abiParser);
147
149
  return parsedEvents
148
150
  .filter((parsedEvent) => parsedEvent[RAGEQUIT_EVENT_ABI_NAME] !== undefined)
149
151
  .map((parsedEvent) => ({
150
152
  eventData: parsedEvent[RAGEQUIT_EVENT_ABI_NAME],
151
153
  blockNumber: parsedEvent.block_number,
152
- transactionHash: parsedEvent.transaction_hash
154
+ transactionHash: parsedEvent.transaction_hash,
153
155
  }))
154
156
  .map(({ eventData, blockNumber, transactionHash }) => ({
155
157
  ragequitter: num.toHex(eventData.depositor),
@@ -168,7 +170,7 @@ export class StarknetDataService {
168
170
  }
169
171
  static parseGenericEvents(abiEventName, emittedEvents, pool) {
170
172
  const poolAbiEvents = events.getAbiEvents(PrivacyPoolABI);
171
- const parsedEvents = events.parseEvents(emittedEvents.filter(e => num.toBigInt(e.from_address) === num.toBigInt(pool.address)), poolAbiEvents, {}, {});
173
+ const parsedEvents = events.parseEvents(emittedEvents.filter((e) => num.toBigInt(e.from_address) === num.toBigInt(pool.address)), poolAbiEvents, {}, {}, StarknetDataService.abiParser);
172
174
  return parsedEvents
173
175
  .filter((parsedEvent) => parsedEvent[abiEventName] !== undefined)
174
176
  .map((parsedEvent) => {
@@ -176,7 +178,7 @@ export class StarknetDataService {
176
178
  return {
177
179
  ...parsedEvent[abiEventName],
178
180
  blockNumber: parsedEvent.block_number,
179
- transactionHash: parsedEvent.transaction_hash
181
+ transactionHash: parsedEvent.transaction_hash,
180
182
  };
181
183
  });
182
184
  }
@@ -193,12 +195,12 @@ export class StarknetDataService {
193
195
  const receipt = await this.provider.getTransactionReceipt(transactionHash);
194
196
  if (!receipt.isSuccess())
195
197
  throw SNDataError.noEventsToParse("Tx was not succesful");
196
- const emmitedEvents = receipt.value.events.map(e => {
198
+ const emmitedEvents = receipt.value.events.map((e) => {
197
199
  return {
198
200
  ...e,
199
201
  block_hash: receipt.value.block_hash,
200
202
  block_number: receipt.value.block_number,
201
- transaction_hash: transactionHash
203
+ transaction_hash: transactionHash,
202
204
  };
203
205
  });
204
206
  return StarknetDataService.parseGenericEvents(abiEventName, emmitedEvents, pool);
@@ -1 +1 @@
1
- {"version":3,"file":"data.service.js","sourceRoot":"","sources":["../src/data.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data.service.js","sourceRoot":"","sources":["../src/data.service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fatsolutions/privacy-pools-core-starknet-sdk",
3
- "version": "0.0.29",
3
+ "version": "0.0.31",
4
4
  "license": "Apache-2.0",
5
5
  "description": "Starknet SDK for Privacy Pool protocol with Garaga proof verification support",
6
6
  "author": "Fat Solutions",
@@ -12,6 +12,8 @@
12
12
  "package.json",
13
13
  "!**/*.tsbuildinfo"
14
14
  ],
15
+ "main": "./dist/index.js",
16
+ "types": "./dist/index.d.ts",
15
17
  "exports": {
16
18
  ".": {
17
19
  "types": "./dist/index.d.ts",
@@ -23,7 +25,7 @@
23
25
  "@0xbow/privacy-pools-core-sdk": "0.1.22",
24
26
  "@scure/starknet": "1.1.2",
25
27
  "garaga": "0.18.1",
26
- "starknet": "7.6.4",
28
+ "starknet": "8.5.4",
27
29
  "viem": "2.22.14"
28
30
  },
29
31
  "devDependencies": {
@@ -1,5 +1,5 @@
1
1
  import { Hash } from "@0xbow/privacy-pools-core-sdk";
2
- import { AllowArray, Call, Contract, InvokeFunctionResponse, num, RpcProvider, SimulatedTransaction, Account as SNAccount, TypedContractV2, UniversalDetails } from "starknet";
2
+ import { AllowArray, Call, Contract, InvokeFunctionResponse, num, RpcProvider, SimulateTransaction, Account as SNAccount, TypedContractV2, UniversalDetails } from "starknet";
3
3
 
4
4
  import { EntryPointABI } from "../abis/EntryPoint.abi.js";
5
5
  import { ERC20ABI } from "../abis/ERC20.abi.js";
@@ -30,27 +30,44 @@ export type Erc20Type = TypedContractV2<typeof ERC20ABI>;
30
30
  /**
31
31
  * Execution modes for contract interactions.
32
32
  */
33
- export enum Mode {
33
+ export const Mode = {
34
34
  /** Simulate the transaction without executing it */
35
- SIMULATE = "simulate",
35
+ SIMULATE: "simulate",
36
36
  /** Execute the transaction on-chain */
37
- EXECUTE = "execute"
38
- };
37
+ EXECUTE: "execute"
38
+ } as const;
39
+
40
+ export type Mode = typeof Mode[keyof typeof Mode];
39
41
 
40
42
  /** Option type for simulation mode */
41
- export type OptionModeSimulate = { mode: Mode.SIMULATE; };
43
+ export type OptionSimulate = {};
42
44
 
43
45
  /** Option type for execution mode with optional transaction details */
44
- export type OptionModeExecute = { mode: Mode.EXECUTE, details?: UniversalDetails; };
46
+ export type OptionExecute = { details?: UniversalDetails; };
45
47
 
46
- /** Union type for all supported execution modes */
47
- type OptionModes = OptionModeExecute | OptionModeSimulate;
48
+ /** Option type for simulation mode */
49
+ export type OptionModeSimulate = { mode: typeof Mode.SIMULATE; modeOptions?: OptionSimulate; };
50
+
51
+ /** Option type for execution mode with optional transaction details */
52
+ export type OptionModeExecute = { mode: typeof Mode.EXECUTE; modeOptions?: OptionExecute; };
53
+
54
+ type OptionModesMap = {
55
+ [Mode.EXECUTE]: OptionExecute;
56
+ [Mode.SIMULATE]: OptionSimulate;
57
+ };
58
+
59
+ type OptionModes = {
60
+ [K in keyof OptionModesMap]: {
61
+ mode: K;
62
+ modeOptions?: OptionModesMap[K];
63
+ }
64
+ }[keyof OptionModesMap];
48
65
 
49
66
  /** Call options including account and execution mode */
50
67
  type CallOptions = { account: SNAccount | RpcProvider; } & OptionModes;
51
68
 
52
69
  /** Union type for all possible call results */
53
- type CallResult = AllowArray<Call> | SimulatedTransaction | TransactionResponse;
70
+ type CallResult = AllowArray<Call> | Omit<SimulateTransaction, 'fee_estimation'> | TransactionResponse;
54
71
 
55
72
  /** Helper function for asserting instances */
56
73
  function _isAccount(x: SNAccount | RpcProvider): x is SNAccount {
@@ -73,7 +90,8 @@ function _intentOptionWrapper(calls: AllowArray<Call>, options?: CallOptions): P
73
90
  return simulateIntent(options.account, calls);
74
91
  }
75
92
  else if (options.mode === Mode.EXECUTE) {
76
- return executeIntent(options.account, calls, options.details);
93
+ const details = options.modeOptions?.details;
94
+ return executeIntent(options.account, calls, details);
77
95
  }
78
96
  else {
79
97
  throw StarknetSDKError.unreachable();
@@ -121,7 +139,7 @@ export class SNContractInteractionsService {
121
139
  entrypointAddress: StarknetAddress,
122
140
  readonly providerOrAccount: SNAccount | RpcProvider,
123
141
  ) {
124
- this.entrypoint = new Contract(EntryPointABI, entrypointAddress, this.providerOrAccount).typedv2(EntryPointABI);
142
+ this.entrypoint = new Contract({ abi: EntryPointABI, address: entrypointAddress, providerOrAccount: this.providerOrAccount}).typedv2(EntryPointABI);
125
143
  }
126
144
 
127
145
  /**
@@ -131,11 +149,11 @@ export class SNContractInteractionsService {
131
149
  * @returns A typed contract instance for the PrivacyPool
132
150
  */
133
151
  pool(address: StarknetAddress): PrivacyPoolType {
134
- return new Contract(PrivacyPoolABI, address, this.providerOrAccount).typedv2(PrivacyPoolABI);
152
+ return new Contract({ abi: PrivacyPoolABI, address, providerOrAccount: this.providerOrAccount}).typedv2(PrivacyPoolABI);
135
153
  }
136
154
 
137
155
  erc20(address: StarknetAddress): Erc20Type {
138
- return new Contract(ERC20ABI, address, this.providerOrAccount).typedv2(ERC20ABI);
156
+ return new Contract({ abi: ERC20ABI, address, providerOrAccount: this.providerOrAccount }).typedv2(ERC20ABI);
139
157
  }
140
158
 
141
159
  /**
@@ -156,7 +174,7 @@ export class SNContractInteractionsService {
156
174
  * @param options - Simulation options
157
175
  * @returns A simulated transaction result
158
176
  */
159
- depositERC20(asset: StarknetAddress, amount: bigint, precommitment: bigint, options: OptionModeSimulate): Promise<SimulatedTransaction>;
177
+ depositERC20(asset: StarknetAddress, amount: bigint, precommitment: bigint, options: OptionModeSimulate): Promise<SimulateTransaction>;
160
178
  /**
161
179
  * Deposits an ERC20 token into a privacy pool and executes the transaction.
162
180
  *
@@ -188,7 +206,7 @@ export class SNContractInteractionsService {
188
206
  * @param options - Simulation options
189
207
  * @returns A simulated transaction result
190
208
  */
191
- depositETH(amount: bigint, precommitment: bigint, options: OptionModeSimulate): Promise<SimulatedTransaction>;
209
+ depositETH(amount: bigint, precommitment: bigint, options: OptionModeSimulate): Promise<SimulateTransaction>;
192
210
  /**
193
211
  * Deposits ETH into a privacy pool and executes the transaction.
194
212
  *
@@ -221,7 +239,7 @@ export class SNContractInteractionsService {
221
239
  * @param options - Simulation options
222
240
  * @returns A simulated transaction result
223
241
  */
224
- withdraw(withdrawal: Withdrawal, withdrawalProofGaraga: bigint[], scope: Hash, options: OptionModeSimulate): Promise<SimulatedTransaction>;
242
+ withdraw(withdrawal: Withdrawal, withdrawalProofGaraga: bigint[], scope: Hash, options: OptionModeSimulate): Promise<SimulateTransaction>;
225
243
  /**
226
244
  * Withdraws funds from a privacy pool and executes the transaction.
227
245
  *
@@ -256,7 +274,7 @@ export class SNContractInteractionsService {
256
274
  * @param options - Simulation options
257
275
  * @returns A simulated transaction result
258
276
  */
259
- relay(withdrawal: Withdrawal, withdrawalProofGaraga: bigint[], scope: Hash, options: OptionModeSimulate): Promise<SimulatedTransaction>;
277
+ relay(withdrawal: Withdrawal, withdrawalProofGaraga: bigint[], scope: Hash, options: OptionModeSimulate): Promise<SimulateTransaction>;
260
278
  /**
261
279
  * Relays a withdrawal transaction through the EntryPoint contract and executes it.
262
280
  *
@@ -288,7 +306,7 @@ export class SNContractInteractionsService {
288
306
  * @param options - Simulation options
289
307
  * @returns A simulated transaction result
290
308
  */
291
- ragequit(ragequitProofGaraga: bigint[], privacyPoolAddress: StarknetAddress, options: OptionModeSimulate): Promise<SimulatedTransaction>;
309
+ ragequit(ragequitProofGaraga: bigint[], privacyPoolAddress: StarknetAddress, options: OptionModeSimulate): Promise<SimulateTransaction>;
292
310
  /**
293
311
  * Performs a ragequit operation to exit a privacy pool and executes the transaction.
294
312
  *
@@ -373,7 +391,7 @@ export class SNContractInteractionsService {
373
391
  * @todo Implement ERC20 approval functionality
374
392
  */
375
393
  approveERC20(spenderAddress: StarknetAddress, tokenAddress: StarknetAddress, amount: bigint): Promise<Call>;
376
- approveERC20(spenderAddress: StarknetAddress, tokenAddress: StarknetAddress, amount: bigint, options: OptionModeSimulate): Promise<SimulatedTransaction>;
394
+ approveERC20(spenderAddress: StarknetAddress, tokenAddress: StarknetAddress, amount: bigint, options: OptionModeSimulate): Promise<SimulateTransaction>;
377
395
  approveERC20(spenderAddress: StarknetAddress, tokenAddress: StarknetAddress, amount: bigint, options: OptionModeExecute): Promise<TransactionResponse>;
378
396
  approveERC20(spenderAddress: StarknetAddress, tokenAddress: StarknetAddress, amount: bigint, options?: OptionModes): Promise<CallResult> {
379
397
  const call = this.erc20(tokenAddress).populate("approve", [spenderAddress, amount]);
@@ -381,7 +399,7 @@ export class SNContractInteractionsService {
381
399
  }
382
400
 
383
401
  approveAndDeposit(entrypointAddress: StarknetAddress, tokenAddress: StarknetAddress, amount: bigint, precommitment: bigint): Promise<CallResult>;
384
- approveAndDeposit(entrypointAddress: StarknetAddress, tokenAddress: StarknetAddress, amount: bigint, precommitment: bigint, options: OptionModeSimulate): Promise<SimulatedTransaction>;
402
+ approveAndDeposit(entrypointAddress: StarknetAddress, tokenAddress: StarknetAddress, amount: bigint, precommitment: bigint, options: OptionModeSimulate): Promise<SimulateTransaction>;
385
403
  approveAndDeposit(entrypointAddress: StarknetAddress, tokenAddress: StarknetAddress, amount: bigint, precommitment: bigint, options: OptionModeExecute): Promise<TransactionResponse>;
386
404
  async approveAndDeposit(entrypointAddress: StarknetAddress, tokenAddress: StarknetAddress, amount: bigint, precommitment: bigint, options?: OptionModes): Promise<CallResult> {
387
405
  const assetConfig = await this.entrypoint.assetConfig(tokenAddress);
@@ -403,7 +421,7 @@ export class AdminContractInteractions {
403
421
  }
404
422
 
405
423
  registerPool(asset: StarknetAddress, pool: StarknetAddress, minimumDepositAmount: bigint, vettingFeeBPS: bigint, maxRelayFeeBPS: bigint): Promise<Call>;
406
- registerPool(asset: StarknetAddress, pool: StarknetAddress, minimumDepositAmount: bigint, vettingFeeBPS: bigint, maxRelayFeeBPS: bigint, options: OptionModeSimulate): Promise<SimulatedTransaction>;
424
+ registerPool(asset: StarknetAddress, pool: StarknetAddress, minimumDepositAmount: bigint, vettingFeeBPS: bigint, maxRelayFeeBPS: bigint, options: OptionModeSimulate): Promise<SimulateTransaction>;
407
425
  registerPool(asset: StarknetAddress, pool: StarknetAddress, minimumDepositAmount: bigint, vettingFeeBPS: bigint, maxRelayFeeBPS: bigint, options: OptionModeExecute): Promise<InvokeFunctionResponse>;
408
426
  async registerPool(asset: StarknetAddress, pool: StarknetAddress, minimumDepositAmount: bigint, vettingFeeBPS: bigint, maxRelayFeeBPS: bigint, options?: OptionModes) {
409
427
  const call = this.entrypoint.populate("registerPool", [asset, pool, minimumDepositAmount, vettingFeeBPS, maxRelayFeeBPS]);
@@ -411,7 +429,7 @@ export class AdminContractInteractions {
411
429
  }
412
430
 
413
431
  updateRoot(root: bigint, ipfsCID: string): Promise<Call>;
414
- updateRoot(root: bigint, ipfsCID: string, options: OptionModeSimulate): Promise<SimulatedTransaction>;
432
+ updateRoot(root: bigint, ipfsCID: string, options: OptionModeSimulate): Promise<SimulateTransaction>;
415
433
  updateRoot(root: bigint, ipfsCID: string, options: OptionModeExecute): Promise<InvokeFunctionResponse>;
416
434
  async updateRoot(root: bigint, ipfsCID: string, options?: OptionModes) {
417
435
  _assertIpfsCID(ipfsCID);
@@ -420,7 +438,7 @@ export class AdminContractInteractions {
420
438
  }
421
439
 
422
440
  removePool(asset: StarknetAddress): Promise<Call>;
423
- removePool(asset: StarknetAddress, options: OptionModeSimulate): Promise<SimulatedTransaction>;
441
+ removePool(asset: StarknetAddress, options: OptionModeSimulate): Promise<SimulateTransaction>;
424
442
  removePool(asset: StarknetAddress, options: OptionModeExecute): Promise<InvokeFunctionResponse>;
425
443
  async removePool(asset: StarknetAddress, options?: OptionModes) {
426
444
  const call = this.entrypoint.populate("removePool", [asset]);
@@ -428,7 +446,7 @@ export class AdminContractInteractions {
428
446
  }
429
447
 
430
448
  updatePoolConfiguration(asset: StarknetAddress, minimumDepositAmount: bigint, vettingFeeBPS: bigint, maxRelayFeeBPS: bigint): Promise<Call>;
431
- updatePoolConfiguration(asset: StarknetAddress, minimumDepositAmount: bigint, vettingFeeBPS: bigint, maxRelayFeeBPS: bigint, options: OptionModeSimulate): Promise<SimulatedTransaction>;
449
+ updatePoolConfiguration(asset: StarknetAddress, minimumDepositAmount: bigint, vettingFeeBPS: bigint, maxRelayFeeBPS: bigint, options: OptionModeSimulate): Promise<SimulateTransaction>;
432
450
  updatePoolConfiguration(asset: StarknetAddress, minimumDepositAmount: bigint, vettingFeeBPS: bigint, maxRelayFeeBPS: bigint, options: OptionModeExecute): Promise<InvokeFunctionResponse>;
433
451
  async updatePoolConfiguration(asset: StarknetAddress, minimumDepositAmount: bigint, vettingFeeBPS: bigint, maxRelayFeeBPS: bigint, options?: OptionModes) {
434
452
  const call = this.entrypoint.populate("updatePoolConfiguration", [asset, minimumDepositAmount, vettingFeeBPS, maxRelayFeeBPS]);
@@ -436,7 +454,7 @@ export class AdminContractInteractions {
436
454
  }
437
455
 
438
456
  windDownPool(pool: StarknetAddress): Promise<Call>;
439
- windDownPool(pool: StarknetAddress, options: OptionModeSimulate): Promise<SimulatedTransaction>;
457
+ windDownPool(pool: StarknetAddress, options: OptionModeSimulate): Promise<SimulateTransaction>;
440
458
  windDownPool(pool: StarknetAddress, options: OptionModeExecute): Promise<InvokeFunctionResponse>;
441
459
  async windDownPool(pool: StarknetAddress, options?: OptionModes) {
442
460
  const call = this.entrypoint.populate("windDownPool", [pool]);
@@ -444,7 +462,7 @@ export class AdminContractInteractions {
444
462
  }
445
463
 
446
464
  withdrawFees(asset: StarknetAddress, recipient: StarknetAddress): Promise<Call>;
447
- withdrawFees(asset: StarknetAddress, recipient: StarknetAddress, options: OptionModeSimulate): Promise<SimulatedTransaction>;
465
+ withdrawFees(asset: StarknetAddress, recipient: StarknetAddress, options: OptionModeSimulate): Promise<SimulateTransaction>;
448
466
  withdrawFees(asset: StarknetAddress, recipient: StarknetAddress, options: OptionModeExecute): Promise<InvokeFunctionResponse>;
449
467
  async withdrawFees(asset: StarknetAddress, recipient: StarknetAddress, options?: OptionModes) {
450
468
  const call = this.entrypoint.populate("withdrawFees", [asset, recipient]);
@@ -452,7 +470,7 @@ export class AdminContractInteractions {
452
470
  }
453
471
 
454
472
  upgrade(newClassHash: string): Promise<Call>;
455
- upgrade(newClassHash: string, options: OptionModeSimulate): Promise<SimulatedTransaction>;
473
+ upgrade(newClassHash: string, options: OptionModeSimulate): Promise<SimulateTransaction>;
456
474
  upgrade(newClassHash: string, options: OptionModeExecute): Promise<InvokeFunctionResponse>;
457
475
  async upgrade(newClassHash: string, options?: OptionModes) {
458
476
  const call = this.entrypoint.populate("upgrade", [newClassHash]);
@@ -1,4 +1,4 @@
1
- import { AllowArray, Call, InvokeFunctionResponse, Account as SNAccount, SimulatedTransaction, TransactionType, UniversalDetails } from "starknet";
1
+ import { AllowArray, Call, InvokeFunctionResponse, Account as SNAccount, SimulateTransaction, TransactionType, UniversalDetails } from "starknet";
2
2
  import { SNContractError, StarknetSDKError } from "../errors/index.js";
3
3
  import { parseContractError } from "../errors/contracts.errors.js";
4
4
 
@@ -11,7 +11,7 @@ export async function executeIntent(
11
11
 
12
12
  export async function simulateIntent(
13
13
  account: SNAccount, calls: AllowArray<Call>
14
- ): Promise<SimulatedTransaction> {
14
+ ): Promise<Omit<SimulateTransaction, 'fee_estimation'>> {
15
15
  const simRes = await account.simulateTransaction([
16
16
  { type: TransactionType.INVOKE, payload: calls },
17
17
  ]);
@@ -3,21 +3,39 @@ import {
3
3
  Hash,
4
4
  PoolInfo,
5
5
  RagequitEvent,
6
- WithdrawalEvent
6
+ WithdrawalEvent,
7
7
  } from "@0xbow/privacy-pools-core-sdk";
8
- import { EmittedEvent, EventFilter, RpcProvider, events, hash, num } from "starknet";
8
+ import {
9
+ AbiParser2,
10
+ EmittedEvent,
11
+ EventFilter,
12
+ RpcProvider,
13
+ events,
14
+ hash,
15
+ num,
16
+ } from "starknet";
9
17
  import { PrivacyPoolABI } from "./abis/PrivacyPool.abi.js";
10
- import { SNBaseErrorCode, SNDataError, StarknetSDKError } from "./errors/index.js";
18
+ import {
19
+ SNBaseErrorCode,
20
+ SNDataError,
21
+ StarknetSDKError,
22
+ } from "./errors/index.js";
11
23
 
12
24
  // Calculate event selectors using Starknet keccak
13
- export const DEPOSIT_EVENT_SELECTOR = num.toHex(hash.starknetKeccak("Deposited")); // 0x69105484e3b5f553164aa6de1f67321ea2757275a5e614365c90b9ed0a5e9b
14
- export const WITHDRAWAL_EVENT_SELECTOR = num.toHex(hash.starknetKeccak("Withdrawn")); // 0x36a4d15ab9e146faab90d4abc1c0cad17c4ded24551c781ba100392b5a70248
15
- export const RAGEQUIT_EVENT_SELECTOR = num.toHex(hash.starknetKeccak("RageQuit")); // 0x2a2469e4569da9d3c3df9bc1a2ddece1e640a89b8ecd537da96f064d64c8183
25
+ export const DEPOSIT_EVENT_SELECTOR = num.toHex(
26
+ hash.starknetKeccak("Deposited")
27
+ ); // 0x69105484e3b5f553164aa6de1f67321ea2757275a5e614365c90b9ed0a5e9b
28
+ export const WITHDRAWAL_EVENT_SELECTOR = num.toHex(
29
+ hash.starknetKeccak("Withdrawn")
30
+ ); // 0x36a4d15ab9e146faab90d4abc1c0cad17c4ded24551c781ba100392b5a70248
31
+ export const RAGEQUIT_EVENT_SELECTOR = num.toHex(
32
+ hash.starknetKeccak("RageQuit")
33
+ ); // 0x2a2469e4569da9d3c3df9bc1a2ddece1e640a89b8ecd537da96f064d64c8183
16
34
 
17
35
  // ABI event names for direct selection
18
- export const DEPOSIT_EVENT_ABI_NAME = 'privacy_pools::interfaces::IPool::Deposited';
19
- export const WITHDRAWAL_EVENT_ABI_NAME = 'privacy_pools::interfaces::IPool::Withdrawn';
20
- export const RAGEQUIT_EVENT_ABI_NAME = 'privacy_pools::interfaces::IPool::RageQuit';
36
+ export const DEPOSIT_EVENT_ABI_NAME = "privacy_pools::interfaces::IPool::Deposited";
37
+ export const WITHDRAWAL_EVENT_ABI_NAME = "privacy_pools::interfaces::IPool::Withdrawn";
38
+ export const RAGEQUIT_EVENT_ABI_NAME = "privacy_pools::interfaces::IPool::RageQuit";
21
39
 
22
40
  export const AbiEventName = {
23
41
  Deposit: DEPOSIT_EVENT_ABI_NAME,
@@ -25,7 +43,7 @@ export const AbiEventName = {
25
43
  Ragequit: RAGEQUIT_EVENT_ABI_NAME,
26
44
  } as const;
27
45
 
28
- type AbiEventName = typeof AbiEventName[keyof typeof AbiEventName];
46
+ type AbiEventName = (typeof AbiEventName)[keyof typeof AbiEventName];
29
47
 
30
48
  // Event data interfaces with correct types
31
49
  export interface StarknetDepositedEventData {
@@ -56,7 +74,8 @@ type AbiToEvent = {
56
74
  [AbiEventName.Ragequit]: StarknetRageQuitEventData;
57
75
  };
58
76
 
59
- export type StarknetEvent = StarknetDepositedEventData
77
+ export type StarknetEvent =
78
+ | StarknetDepositedEventData
60
79
  | StarknetWithdrawnEventData
61
80
  | StarknetRageQuitEventData;
62
81
 
@@ -69,6 +88,8 @@ export type StarknetEvent = StarknetDepositedEventData
69
88
  */
70
89
  export class StarknetDataService {
71
90
  private readonly provider: RpcProvider;
91
+ private static readonly abiParser = new AbiParser2(PrivacyPoolABI);
92
+ private readonly abiParser = StarknetDataService.abiParser;
72
93
 
73
94
  /**
74
95
  * Initialize the Starknet data service with an RPC provider
@@ -80,19 +101,22 @@ export class StarknetDataService {
80
101
  }
81
102
 
82
103
  private async getEvents(eventFilter: EventFilter) {
83
- let { continuation_token, events} = await this.provider.getEvents(eventFilter);
104
+ let { continuation_token, events } = await this.provider.getEvents(
105
+ eventFilter
106
+ );
84
107
  while (continuation_token) {
85
- const {continuation_token: newToken, events: newEvents} = await this.provider.getEvents({...eventFilter, continuation_token});
108
+ const { continuation_token: newToken, events: newEvents } =
109
+ await this.provider.getEvents({ ...eventFilter, continuation_token });
86
110
  events = [...events, ...newEvents];
87
111
  continuation_token = newToken;
88
112
  }
89
-
113
+
90
114
  return events;
91
115
  }
92
116
 
93
117
  /**
94
118
  * Get deposit events for a specific Starknet pool
95
- *
119
+ *
96
120
  * @param pool - The pool information to fetch deposits from
97
121
  * @returns Array of deposit events compatible with AccountService interface
98
122
  * @throws {StarknetSDKError} If provider is not configured or network error occurs
@@ -102,7 +126,6 @@ export class StarknetDataService {
102
126
  fromBlock: bigint = pool.deploymentBlock
103
127
  ): Promise<DepositEvent[]> {
104
128
  try {
105
-
106
129
  // Fetch events using Starknet provider
107
130
  const eventsResult = await this.getEvents({
108
131
  from_block: { block_number: Number(fromBlock) },
@@ -114,28 +137,42 @@ export class StarknetDataService {
114
137
 
115
138
  // Parse all events at once using starknet.js event parser
116
139
  const abiEvents = events.getAbiEvents(PrivacyPoolABI);
117
- const parsedEvents = events.parseEvents(eventsResult, abiEvents, {}, {});
140
+ const parsedEvents = events.parseEvents(
141
+ eventsResult,
142
+ abiEvents,
143
+ {},
144
+ {},
145
+ this.abiParser
146
+ );
118
147
 
119
148
  return parsedEvents
120
- .filter((parsedEvent) => parsedEvent[DEPOSIT_EVENT_ABI_NAME] !== undefined)
149
+ .filter(
150
+ (parsedEvent) => parsedEvent[DEPOSIT_EVENT_ABI_NAME] !== undefined
151
+ )
121
152
  .map((parsedEvent) => ({
122
- eventData: parsedEvent[DEPOSIT_EVENT_ABI_NAME] as unknown as StarknetDepositedEventData,
153
+ eventData: parsedEvent[
154
+ DEPOSIT_EVENT_ABI_NAME
155
+ ] as unknown as StarknetDepositedEventData,
123
156
  blockNumber: parsedEvent.block_number,
124
- transactionHash: parsedEvent.transaction_hash
157
+ transactionHash: parsedEvent.transaction_hash,
125
158
  }))
126
- .map(({ eventData, blockNumber, transactionHash }) => ({
127
- depositor: num.toHex(eventData.depositor),
128
- commitment: eventData.commitment as Hash,
129
- label: eventData.label as Hash,
130
- value: eventData.value,
131
- precommitment: eventData.preCommitmentHash as Hash,
132
- blockNumber: BigInt(blockNumber || 0),
133
- transactionHash: transactionHash || "0x0",
134
- }) as DepositEvent);
159
+ .map(
160
+ ({ eventData, blockNumber, transactionHash }) =>
161
+ ({
162
+ depositor: num.toHex(eventData.depositor),
163
+ commitment: eventData.commitment as Hash,
164
+ label: eventData.label as Hash,
165
+ value: eventData.value,
166
+ precommitment: eventData.preCommitmentHash as Hash,
167
+ blockNumber: BigInt(blockNumber || 0),
168
+ transactionHash: transactionHash || "0x0",
169
+ } as DepositEvent)
170
+ );
135
171
  } catch (error) {
136
172
  if (error instanceof StarknetSDKError) throw error;
137
173
  throw new StarknetSDKError(
138
- `Failed to fetch deposits: ${error instanceof Error ? error.message : "Unknown error"}`,
174
+ `Failed to fetch deposits: ${error instanceof Error ? error.message : "Unknown error"
175
+ }`,
139
176
  SNBaseErrorCode.UNKNOWN
140
177
  );
141
178
  }
@@ -143,7 +180,7 @@ export class StarknetDataService {
143
180
 
144
181
  /**
145
182
  * Get withdrawal events for a specific Starknet pool
146
- *
183
+ *
147
184
  * @param pool - The pool information to fetch withdrawals from
148
185
  * @param fromBlock - Optional starting block number
149
186
  * @returns Array of withdrawal events compatible with AccountService interface
@@ -164,26 +201,40 @@ export class StarknetDataService {
164
201
 
165
202
  // Parse all events at once using starknet.js event parser
166
203
  const abiEvents = events.getAbiEvents(PrivacyPoolABI);
167
- const parsedEvents = events.parseEvents(eventsResult.events, abiEvents, {}, {});
204
+ const parsedEvents = events.parseEvents(
205
+ eventsResult.events,
206
+ abiEvents,
207
+ {},
208
+ {},
209
+ this.abiParser
210
+ );
168
211
 
169
212
  return parsedEvents
170
- .filter((parsedEvent) => parsedEvent[WITHDRAWAL_EVENT_ABI_NAME] !== undefined)
213
+ .filter(
214
+ (parsedEvent) => parsedEvent[WITHDRAWAL_EVENT_ABI_NAME] !== undefined
215
+ )
171
216
  .map((parsedEvent) => ({
172
- eventData: parsedEvent[WITHDRAWAL_EVENT_ABI_NAME] as unknown as StarknetWithdrawnEventData,
217
+ eventData: parsedEvent[
218
+ WITHDRAWAL_EVENT_ABI_NAME
219
+ ] as unknown as StarknetWithdrawnEventData,
173
220
  blockNumber: parsedEvent.block_number,
174
- transactionHash: parsedEvent.transaction_hash
221
+ transactionHash: parsedEvent.transaction_hash,
175
222
  }))
176
- .map(({ eventData, blockNumber, transactionHash }) => ({
177
- withdrawn: eventData.withdrawnValue,
178
- spentNullifier: eventData.existingNullifierHash as Hash,
179
- newCommitment: eventData.newCommitmentHash as Hash,
180
- blockNumber: BigInt(blockNumber || 0),
181
- transactionHash: transactionHash || "0x0",
182
- }) as WithdrawalEvent);
223
+ .map(
224
+ ({ eventData, blockNumber, transactionHash }) =>
225
+ ({
226
+ withdrawn: eventData.withdrawnValue,
227
+ spentNullifier: eventData.existingNullifierHash as Hash,
228
+ newCommitment: eventData.newCommitmentHash as Hash,
229
+ blockNumber: BigInt(blockNumber || 0),
230
+ transactionHash: transactionHash || "0x0",
231
+ } as WithdrawalEvent)
232
+ );
183
233
  } catch (error) {
184
234
  if (error instanceof StarknetSDKError) throw error;
185
235
  throw new StarknetSDKError(
186
- `Failed to fetch withdrawals: ${error instanceof Error ? error.message : "Unknown error"}`,
236
+ `Failed to fetch withdrawals: ${error instanceof Error ? error.message : "Unknown error"
237
+ }`,
187
238
  SNBaseErrorCode.UNKNOWN
188
239
  );
189
240
  }
@@ -191,7 +242,7 @@ export class StarknetDataService {
191
242
 
192
243
  /**
193
244
  * Get ragequit events for a specific Starknet pool
194
- *
245
+ *
195
246
  * @param pool - The pool information to fetch ragequits from
196
247
  * @param fromBlock - Optional starting block number
197
248
  * @returns Array of ragequit events compatible with AccountService interface
@@ -212,73 +263,118 @@ export class StarknetDataService {
212
263
 
213
264
  // Parse all events at once using starknet.js event parser
214
265
  const abiEvents = events.getAbiEvents(PrivacyPoolABI);
215
- const parsedEvents = events.parseEvents(eventsResult.events, abiEvents, {}, {});
266
+ const parsedEvents = events.parseEvents(
267
+ eventsResult.events,
268
+ abiEvents,
269
+ {},
270
+ {},
271
+ this.abiParser
272
+ );
216
273
 
217
274
  return parsedEvents
218
- .filter((parsedEvent) => parsedEvent[RAGEQUIT_EVENT_ABI_NAME] !== undefined)
275
+ .filter(
276
+ (parsedEvent) => parsedEvent[RAGEQUIT_EVENT_ABI_NAME] !== undefined
277
+ )
219
278
  .map((parsedEvent) => ({
220
- eventData: parsedEvent[RAGEQUIT_EVENT_ABI_NAME] as unknown as StarknetRageQuitEventData,
279
+ eventData: parsedEvent[
280
+ RAGEQUIT_EVENT_ABI_NAME
281
+ ] as unknown as StarknetRageQuitEventData,
221
282
  blockNumber: parsedEvent.block_number,
222
- transactionHash: parsedEvent.transaction_hash
283
+ transactionHash: parsedEvent.transaction_hash,
223
284
  }))
224
- .map(({ eventData, blockNumber, transactionHash }) => ({
225
- ragequitter: num.toHex(eventData.depositor),
226
- commitment: eventData.commitment as Hash,
227
- label: eventData.label as Hash,
228
- value: eventData.value,
229
- blockNumber: BigInt(blockNumber || 0),
230
- transactionHash: transactionHash || "0x0",
231
- }) as RagequitEvent);
285
+ .map(
286
+ ({ eventData, blockNumber, transactionHash }) =>
287
+ ({
288
+ ragequitter: num.toHex(eventData.depositor),
289
+ commitment: eventData.commitment as Hash,
290
+ label: eventData.label as Hash,
291
+ value: eventData.value,
292
+ blockNumber: BigInt(blockNumber || 0),
293
+ transactionHash: transactionHash || "0x0",
294
+ } as RagequitEvent)
295
+ );
232
296
  } catch (error) {
233
297
  if (error instanceof StarknetSDKError) throw error;
234
298
  throw new StarknetSDKError(
235
- `Failed to fetch ragequits: ${error instanceof Error ? error.message : "Unknown error"}`,
299
+ `Failed to fetch ragequits: ${error instanceof Error ? error.message : "Unknown error"
300
+ }`,
236
301
  SNBaseErrorCode.UNKNOWN
237
302
  );
238
303
  }
239
304
  }
240
305
 
241
- private static parseGenericEvents<K extends AbiEventName>(abiEventName: K, emittedEvents: EmittedEvent[], pool: PoolInfo) {
306
+ private static parseGenericEvents<K extends AbiEventName>(
307
+ abiEventName: K,
308
+ emittedEvents: EmittedEvent[],
309
+ pool: PoolInfo
310
+ ) {
242
311
  const poolAbiEvents = events.getAbiEvents(PrivacyPoolABI);
243
- const parsedEvents = events.parseEvents(emittedEvents.filter(e => num.toBigInt(e.from_address) === num.toBigInt(pool.address)), poolAbiEvents, {}, {});
312
+ const parsedEvents = events.parseEvents(
313
+ emittedEvents.filter(
314
+ (e) => num.toBigInt(e.from_address) === num.toBigInt(pool.address)
315
+ ),
316
+ poolAbiEvents,
317
+ {},
318
+ {},
319
+ StarknetDataService.abiParser
320
+ );
244
321
  return parsedEvents
245
322
  .filter((parsedEvent) => parsedEvent[abiEventName] !== undefined)
246
323
  .map((parsedEvent) => {
247
324
  console.log("PARSED", parsedEvent);
248
325
  return {
249
- ...parsedEvent[abiEventName] as unknown as AbiToEvent[K],
326
+ ...(parsedEvent[abiEventName] as unknown as AbiToEvent[K]),
250
327
  blockNumber: parsedEvent.block_number,
251
- transactionHash: parsedEvent.transaction_hash
328
+ transactionHash: parsedEvent.transaction_hash,
252
329
  };
253
330
  });
254
331
  }
255
332
 
256
333
  static parseDepositEvents(emittedEvents: EmittedEvent[], pool: PoolInfo) {
257
- return StarknetDataService.parseGenericEvents(AbiEventName.Deposit, emittedEvents, pool);
334
+ return StarknetDataService.parseGenericEvents(
335
+ AbiEventName.Deposit,
336
+ emittedEvents,
337
+ pool
338
+ );
258
339
  }
259
340
 
260
341
  static parseWithdrawalEvents(emittedEvents: EmittedEvent[], pool: PoolInfo) {
261
- return StarknetDataService.parseGenericEvents(AbiEventName.Withdraw, emittedEvents, pool);
342
+ return StarknetDataService.parseGenericEvents(
343
+ AbiEventName.Withdraw,
344
+ emittedEvents,
345
+ pool
346
+ );
262
347
  }
263
348
 
264
349
  static parseRagequitEvents(emittedEvents: EmittedEvent[], pool: PoolInfo) {
265
- return StarknetDataService.parseGenericEvents(AbiEventName.Ragequit, emittedEvents, pool);
350
+ return StarknetDataService.parseGenericEvents(
351
+ AbiEventName.Ragequit,
352
+ emittedEvents,
353
+ pool
354
+ );
266
355
  }
267
356
 
268
- async getTxEvents<K extends AbiEventName>(abiEventName: K, transactionHash: string, pool: PoolInfo): Promise<AbiToEvent[K][]> {
357
+ async getTxEvents<K extends AbiEventName>(
358
+ abiEventName: K,
359
+ transactionHash: string,
360
+ pool: PoolInfo
361
+ ): Promise<AbiToEvent[K][]> {
269
362
  const receipt = await this.provider.getTransactionReceipt(transactionHash);
270
363
  if (!receipt.isSuccess())
271
364
  throw SNDataError.noEventsToParse("Tx was not succesful");
272
365
 
273
- const emmitedEvents: EmittedEvent[] = receipt.value.events.map(e => {
366
+ const emmitedEvents: EmittedEvent[] = receipt.value.events.map((e) => {
274
367
  return {
275
368
  ...e,
276
369
  block_hash: receipt.value.block_hash,
277
370
  block_number: receipt.value.block_number,
278
- transaction_hash: transactionHash
371
+ transaction_hash: transactionHash,
279
372
  };
280
373
  });
281
- return StarknetDataService.parseGenericEvents<K>(abiEventName, emmitedEvents, pool);
374
+ return StarknetDataService.parseGenericEvents<K>(
375
+ abiEventName,
376
+ emmitedEvents,
377
+ pool
378
+ );
282
379
  }
283
-
284
380
  }