@fatsolutions/privacy-pools-core-starknet-sdk 0.0.3 → 0.0.5

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 { Call, InvokeFunctionResponse, RpcProvider, SimulatedTransaction, Account as SNAccount, TypedContractV2, UniversalDetails } from "starknet";
2
+ import { AllowArray, Call, InvokeFunctionResponse, RpcProvider, SimulatedTransaction, Account as SNAccount, TypedContractV2, UniversalDetails } from "starknet";
3
3
  import { Address } from "viem";
4
4
  import { EntryPointABI } from "../abis/EntryPoint.abi.js";
5
5
  import { ERC20ABI } from "../abis/ERC20.abi.js";
@@ -35,6 +35,8 @@ export type OptionModeExecute = {
35
35
  mode: Mode.EXECUTE;
36
36
  details?: UniversalDetails;
37
37
  };
38
+ /** Union type for all possible call results */
39
+ type CallResult = AllowArray<Call> | SimulatedTransaction | TransactionResponse;
38
40
  /**
39
41
  * Service class for interacting with Privacy Pool contracts on Starknet.
40
42
  *
@@ -271,6 +273,9 @@ export declare class SNContractInteractionsService {
271
273
  approveERC20(spenderAddress: Address, tokenAddress: Address, amount: bigint): Promise<Call>;
272
274
  approveERC20(spenderAddress: Address, tokenAddress: Address, amount: bigint, options: OptionModeSimulate): Promise<SimulatedTransaction>;
273
275
  approveERC20(spenderAddress: Address, tokenAddress: Address, amount: bigint, options: OptionModeExecute): Promise<TransactionResponse>;
276
+ approveAndDeposit(entrypointAddress: Address, tokenAddress: Address, amount: bigint, precommitment: bigint): Promise<CallResult>;
277
+ approveAndDeposit(entrypointAddress: Address, tokenAddress: Address, amount: bigint, precommitment: bigint, options: OptionModeSimulate): Promise<SimulatedTransaction>;
278
+ approveAndDeposit(entrypointAddress: Address, tokenAddress: Address, amount: bigint, precommitment: bigint, options: OptionModeExecute): Promise<TransactionResponse>;
274
279
  }
275
280
  export declare class AdminContractInteractions {
276
281
  readonly contractService: SNContractInteractionsService;
@@ -27,20 +27,20 @@ function _isAccount(x) {
27
27
  /**
28
28
  * Internal wrapper function that handles different execution modes for contract calls.
29
29
  *
30
- * @param call - The contract call to execute
30
+ * @param calls - The contract call to execute
31
31
  * @param options - Optional execution parameters
32
32
  * @returns Promise resolving to the appropriate result type based on execution mode
33
33
  * @internal
34
34
  */
35
- function _intentOptionWrapper(call, options) {
35
+ function _intentOptionWrapper(calls, options) {
36
36
  if (options === undefined || !_isAccount(options.account)) {
37
- return Promise.resolve(call);
37
+ return Promise.resolve(calls);
38
38
  }
39
39
  else if (options.mode === Mode.SIMULATE) {
40
- return (0, transactionHandler_js_1.simulateIntent)(options.account, call);
40
+ return (0, transactionHandler_js_1.simulateIntent)(options.account, calls);
41
41
  }
42
42
  else if (options.mode === Mode.EXECUTE) {
43
- return (0, transactionHandler_js_1.executeIntent)(options.account, call, options.details);
43
+ return (0, transactionHandler_js_1.executeIntent)(options.account, calls, options.details);
44
44
  }
45
45
  else {
46
46
  throw index_js_1.StarknetSDKError.unreachable();
@@ -176,6 +176,16 @@ class SNContractInteractionsService {
176
176
  const call = this.erc20(tokenAddress).populate("approve", [spenderAddress, amount]);
177
177
  return _intentOptionWrapper(call, options && { ...options, account: this.providerOrAccount });
178
178
  }
179
+ async approveAndDeposit(entrypointAddress, tokenAddress, amount, precommitment, options) {
180
+ const assetConfig = await this.entrypoint.assetConfig(tokenAddress);
181
+ const minimumDepositAmount = (0, utils_js_1.castBigInt)(assetConfig.minimumDepositAmount);
182
+ if (amount < minimumDepositAmount) {
183
+ throw index_js_1.SNPoolError.amountTooSmall(`Expected at least ${minimumDepositAmount}, received ${amount}`);
184
+ }
185
+ const callApprove = this.erc20(tokenAddress).populate("approve", [entrypointAddress, amount]);
186
+ const callDeposit = this.entrypoint.populate("deposit", [tokenAddress, amount, precommitment]);
187
+ return _intentOptionWrapper([callApprove, callDeposit], options && { ...options, account: this.providerOrAccount });
188
+ }
179
189
  }
180
190
  exports.SNContractInteractionsService = SNContractInteractionsService;
181
191
  class AdminContractInteractions {
@@ -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 { Call, InvokeFunctionResponse, Account as SNAccount, SimulatedTransaction, UniversalDetails } from "starknet";
2
- export declare function executeIntent(account: SNAccount, call: Call, transactionDetails?: UniversalDetails): Promise<InvokeFunctionResponse>;
3
- export declare function simulateIntent(account: SNAccount, call: Call): Promise<SimulatedTransaction>;
1
+ import { AllowArray, Call, InvokeFunctionResponse, Account as SNAccount, SimulatedTransaction, UniversalDetails } from "starknet";
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>;
@@ -5,13 +5,13 @@ exports.simulateIntent = simulateIntent;
5
5
  const starknet_1 = require("starknet");
6
6
  const index_js_1 = require("../errors/index.js");
7
7
  const contracts_errors_js_1 = require("../errors/contracts.errors.js");
8
- async function executeIntent(account, call, transactionDetails) {
9
- const sim = await simulateIntent(account, call);
10
- return account.execute(call, { ...sim, ...(transactionDetails || {}) });
8
+ async function executeIntent(account, calls, transactionDetails) {
9
+ const sim = await simulateIntent(account, calls);
10
+ return account.execute(calls, { ...sim, ...(transactionDetails || {}) });
11
11
  }
12
- async function simulateIntent(account, call) {
12
+ async function simulateIntent(account, calls) {
13
13
  const simRes = await account.simulateTransaction([
14
- { type: starknet_1.TransactionType.INVOKE, payload: [call] },
14
+ { type: starknet_1.TransactionType.INVOKE, payload: calls },
15
15
  ]);
16
16
  const sim = simRes[0];
17
17
  if (sim === undefined || sim.transaction_trace.type !== "INVOKE") {
@@ -1 +1 @@
1
- {"version":3,"file":"transactionHandler.js","sourceRoot":"","sources":["../../src/contracts/transactionHandler.ts"],"names":[],"mappings":";;AAIA,sCAKC;AAED,wCAoBC;AA/BD,uCAAuI;AACvI,iDAAuE;AACvE,uEAAmE;AAE5D,KAAK,UAAU,aAAa,CACjC,OAAkB,EAAE,IAAU,EAAE,kBAAqC;IAErE,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAChD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1E,CAAC;AAEM,KAAK,UAAU,cAAc,CAClC,OAAkB,EAAE,IAAU;IAE9B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,mBAAmB,CAAC;QAC/C,EAAE,IAAI,EAAE,0BAAe,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE;KAClD,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,2BAAgB,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,IAAA,wCAAkB,EAAC,aAAa,CAAC,IAAI,aAAa,CAAC;QAC/E,MAAM,0BAAe,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":";;AAIA,sCAKC;AAED,wCAoBC;AA/BD,uCAAmJ;AACnJ,iDAAuE;AACvE,uEAAmE;AAE5D,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;AAEM,KAAK,UAAU,cAAc,CAClC,OAAkB,EAAE,KAAuB;IAE3C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,mBAAmB,CAAC;QAC/C,EAAE,IAAI,EAAE,0BAAe,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,2BAAgB,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,IAAA,wCAAkB,EAAC,aAAa,CAAC,IAAI,aAAa,CAAC;QAC/E,MAAM,0BAAe,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -3,6 +3,9 @@ export declare enum SNBaseErrorCode {
3
3
  UNREACHABLE = 1,
4
4
  INTERNAL = 2
5
5
  }
6
+ export declare enum SNPoolErrorCode {
7
+ AMOUNT_TOO_SMALL = 0
8
+ }
6
9
  export declare enum SNContractErrorCode {
7
10
  DEPOSIT_FAILED = 0,
8
11
  INVALID_IPFS_CID = 1,
@@ -11,7 +14,7 @@ export declare enum SNContractErrorCode {
11
14
  export declare enum SNFormatErrorCode {
12
15
  CONVERSION = 0
13
16
  }
14
- export type SNErrorCode = SNBaseErrorCode | SNContractErrorCode | SNFormatErrorCode;
17
+ export type SNErrorCode = SNBaseErrorCode | SNPoolErrorCode | SNContractErrorCode | SNFormatErrorCode;
15
18
  export declare class StarknetSDKError extends Error {
16
19
  readonly code: SNErrorCode;
17
20
  readonly name: string;
@@ -24,6 +27,9 @@ export declare class StarknetSDKError extends Error {
24
27
  export declare class SNFormatError extends StarknetSDKError {
25
28
  static conversion(conetxt?: string): SNFormatError;
26
29
  }
30
+ export declare class SNPoolError extends StarknetSDKError {
31
+ static amountTooSmall(conetxt?: string): SNPoolError;
32
+ }
27
33
  export declare class SNContractError extends StarknetSDKError {
28
34
  static depositFailed(): SNContractError;
29
35
  static invalidIPFSsize(ipfsCID: string): SNContractError;
@@ -1,12 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SNContractError = exports.SNFormatError = exports.StarknetSDKError = exports.SNFormatErrorCode = exports.SNContractErrorCode = exports.SNBaseErrorCode = void 0;
3
+ exports.SNContractError = exports.SNPoolError = exports.SNFormatError = exports.StarknetSDKError = exports.SNFormatErrorCode = exports.SNContractErrorCode = exports.SNPoolErrorCode = exports.SNBaseErrorCode = void 0;
4
4
  var SNBaseErrorCode;
5
5
  (function (SNBaseErrorCode) {
6
6
  SNBaseErrorCode[SNBaseErrorCode["UNKNOWN"] = 0] = "UNKNOWN";
7
7
  SNBaseErrorCode[SNBaseErrorCode["UNREACHABLE"] = 1] = "UNREACHABLE";
8
8
  SNBaseErrorCode[SNBaseErrorCode["INTERNAL"] = 2] = "INTERNAL";
9
9
  })(SNBaseErrorCode || (exports.SNBaseErrorCode = SNBaseErrorCode = {}));
10
+ var SNPoolErrorCode;
11
+ (function (SNPoolErrorCode) {
12
+ SNPoolErrorCode[SNPoolErrorCode["AMOUNT_TOO_SMALL"] = 0] = "AMOUNT_TOO_SMALL";
13
+ })(SNPoolErrorCode || (exports.SNPoolErrorCode = SNPoolErrorCode = {}));
10
14
  var SNContractErrorCode;
11
15
  (function (SNContractErrorCode) {
12
16
  SNContractErrorCode[SNContractErrorCode["DEPOSIT_FAILED"] = 0] = "DEPOSIT_FAILED";
@@ -46,6 +50,13 @@ class SNFormatError extends StarknetSDKError {
46
50
  }
47
51
  }
48
52
  exports.SNFormatError = SNFormatError;
53
+ class SNPoolError extends StarknetSDKError {
54
+ static amountTooSmall(conetxt) {
55
+ const _context = conetxt || "Amount is less than expected by pool";
56
+ return new this(_context, SNPoolErrorCode.AMOUNT_TOO_SMALL);
57
+ }
58
+ }
59
+ exports.SNPoolError = SNPoolError;
49
60
  class SNContractError extends StarknetSDKError {
50
61
  static depositFailed() {
51
62
  return new this("Deposit failed", SNContractErrorCode.DEPOSIT_FAILED);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":";;;AACA,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,2DAAO,CAAA;IACP,mEAAW,CAAA;IACX,6DAAQ,CAAA;AACV,CAAC,EAJW,eAAe,+BAAf,eAAe,QAI1B;AAED,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,iFAAc,CAAA;IACd,qFAAgB,CAAA;IAChB,iEAAM,CAAA;AACR,CAAC,EAJW,mBAAmB,mCAAnB,mBAAmB,QAI9B;AAED,IAAY,iBAEX;AAFD,WAAY,iBAAiB;IAC3B,qEAAU,CAAA;AACZ,CAAC,EAFW,iBAAiB,iCAAjB,iBAAiB,QAE5B;AAID,MAAa,gBAAiB,SAAQ,KAAK;IAKH;IAHpB,IAAI,CAAS;IACtB,OAAO,CAAS;IAEzB,YAAY,OAAe,EAAW,IAAiB;QACrD,KAAK,EAAE,CAAC;QAD4B,SAAI,GAAJ,IAAI,CAAa;QAErD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAEM,MAAM,CAAC,OAAO;QACnB,OAAO,IAAI,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IAEM,MAAM,CAAC,WAAW;QACvB,OAAO,IAAI,IAAI,CAAC,iBAAiB,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;IAClE,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,GAAY;QACjC,OAAO,IAAI,IAAI,CAAC,GAAG,IAAI,gBAAgB,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IACrE,CAAC;CAEF;AAxBD,4CAwBC;AAED,MAAa,aAAc,SAAQ,gBAAgB;IAE1C,MAAM,CAAC,UAAU,CAAC,OAAgB;QACvC,MAAM,QAAQ,GAAG,OAAO,IAAI,mBAAmB,CAAC;QAChD,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAC1D,CAAC;CAEF;AAPD,sCAOC;AAED,MAAa,eAAgB,SAAQ,gBAAgB;IAE5C,MAAM,CAAC,aAAa;QACzB,OAAO,IAAI,IAAI,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,cAAc,CAAC,CAAC;IACxE,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,OAAe;QAC3C,OAAO,IAAI,IAAI,CAAC,kDAAkD,OAAO,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IAC5H,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,MAAc;QACjC,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC;CAEF;AAdD,0CAcC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":";;;AACA,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,2DAAO,CAAA;IACP,mEAAW,CAAA;IACX,6DAAQ,CAAA;AACV,CAAC,EAJW,eAAe,+BAAf,eAAe,QAI1B;AAED,IAAY,eAEX;AAFD,WAAY,eAAe;IACzB,6EAAgB,CAAA;AAClB,CAAC,EAFW,eAAe,+BAAf,eAAe,QAE1B;AAED,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,iFAAc,CAAA;IACd,qFAAgB,CAAA;IAChB,iEAAM,CAAA;AACR,CAAC,EAJW,mBAAmB,mCAAnB,mBAAmB,QAI9B;AAED,IAAY,iBAEX;AAFD,WAAY,iBAAiB;IAC3B,qEAAU,CAAA;AACZ,CAAC,EAFW,iBAAiB,iCAAjB,iBAAiB,QAE5B;AAID,MAAa,gBAAiB,SAAQ,KAAK;IAKH;IAHpB,IAAI,CAAS;IACtB,OAAO,CAAS;IAEzB,YAAY,OAAe,EAAW,IAAiB;QACrD,KAAK,EAAE,CAAC;QAD4B,SAAI,GAAJ,IAAI,CAAa;QAErD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAEM,MAAM,CAAC,OAAO;QACnB,OAAO,IAAI,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IAEM,MAAM,CAAC,WAAW;QACvB,OAAO,IAAI,IAAI,CAAC,iBAAiB,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;IAClE,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,GAAY;QACjC,OAAO,IAAI,IAAI,CAAC,GAAG,IAAI,gBAAgB,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IACrE,CAAC;CAEF;AAxBD,4CAwBC;AAED,MAAa,aAAc,SAAQ,gBAAgB;IAE1C,MAAM,CAAC,UAAU,CAAC,OAAgB;QACvC,MAAM,QAAQ,GAAG,OAAO,IAAI,mBAAmB,CAAC;QAChD,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAC1D,CAAC;CAEF;AAPD,sCAOC;AAED,MAAa,WAAY,SAAQ,gBAAgB;IAExC,MAAM,CAAC,cAAc,CAAC,OAAgB;QAC3C,MAAM,QAAQ,GAAG,OAAO,IAAI,sCAAsC,CAAC;QACnE,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,gBAAgB,CAAC,CAAC;IAC9D,CAAC;CAEF;AAPD,kCAOC;AACD,MAAa,eAAgB,SAAQ,gBAAgB;IAE5C,MAAM,CAAC,aAAa;QACzB,OAAO,IAAI,IAAI,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,cAAc,CAAC,CAAC;IACxE,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,OAAe;QAC3C,OAAO,IAAI,IAAI,CAAC,kDAAkD,OAAO,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IAC5H,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,MAAc;QACjC,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC;CAEF;AAdD,0CAcC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fatsolutions/privacy-pools-core-starknet-sdk",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "license": "Apache-2.0",
5
5
  "description": "",
6
6
  "author": "Fat Solutions",
@@ -1,12 +1,12 @@
1
1
  import { Hash } from "@0xbow/privacy-pools-core-sdk";
2
- import { Call, Contract, InvokeFunctionResponse, num, RpcProvider, SimulatedTransaction, Account as SNAccount, TypedContractV2, UniversalDetails } from "starknet";
2
+ import { AllowArray, Call, Contract, InvokeFunctionResponse, num, RpcProvider, SimulatedTransaction, Account as SNAccount, TypedContractV2, UniversalDetails } from "starknet";
3
3
  import { Address } from "viem";
4
4
 
5
5
  import { EntryPointABI } from "../abis/EntryPoint.abi.js";
6
6
  import { ERC20ABI } from "../abis/ERC20.abi.js";
7
7
  import { PrivacyPoolABI } from "../abis/PrivacyPool.abi.js";
8
8
  import { ETH_ADDRESS } from "../constants.js";
9
- import { SNContractError, StarknetSDKError } from "../errors/index.js";
9
+ import { SNContractError, SNPoolError, StarknetSDKError } from "../errors/index.js";
10
10
  import { Withdrawal } from "../types/entrypoint.js";
11
11
  import { castBigInt } from "../utils.js";
12
12
  import { executeIntent, simulateIntent } from "./transactionHandler.js";
@@ -50,7 +50,7 @@ type OptionModes = OptionModeExecute | OptionModeSimulate;
50
50
  type CallOptions = { account: SNAccount | RpcProvider; } & OptionModes;
51
51
 
52
52
  /** Union type for all possible call results */
53
- type CallResult = Call | SimulatedTransaction | TransactionResponse;
53
+ type CallResult = AllowArray<Call> | SimulatedTransaction | TransactionResponse;
54
54
 
55
55
  /** Helper function for asserting instances */
56
56
  function _isAccount(x: SNAccount | RpcProvider): x is SNAccount {
@@ -60,20 +60,20 @@ function _isAccount(x: SNAccount | RpcProvider): x is SNAccount {
60
60
  /**
61
61
  * Internal wrapper function that handles different execution modes for contract calls.
62
62
  *
63
- * @param call - The contract call to execute
63
+ * @param calls - The contract call to execute
64
64
  * @param options - Optional execution parameters
65
65
  * @returns Promise resolving to the appropriate result type based on execution mode
66
66
  * @internal
67
67
  */
68
- function _intentOptionWrapper(call: Call, options?: CallOptions): Promise<CallResult> {
68
+ function _intentOptionWrapper(calls: AllowArray<Call>, options?: CallOptions): Promise<CallResult> {
69
69
  if (options === undefined || !_isAccount(options.account)) {
70
- return Promise.resolve(call);
70
+ return Promise.resolve(calls);
71
71
  }
72
72
  else if (options.mode === Mode.SIMULATE) {
73
- return simulateIntent(options.account, call);
73
+ return simulateIntent(options.account, calls);
74
74
  }
75
75
  else if (options.mode === Mode.EXECUTE) {
76
- return executeIntent(options.account, call, options.details);
76
+ return executeIntent(options.account, calls, options.details);
77
77
  }
78
78
  else {
79
79
  throw StarknetSDKError.unreachable();
@@ -380,6 +380,20 @@ export class SNContractInteractionsService {
380
380
  return _intentOptionWrapper(call, options && { ...options, account: this.providerOrAccount });
381
381
  }
382
382
 
383
+ approveAndDeposit(entrypointAddress: Address, tokenAddress: Address, amount: bigint, precommitment: bigint): Promise<CallResult>;
384
+ approveAndDeposit(entrypointAddress: Address, tokenAddress: Address, amount: bigint, precommitment: bigint, options: OptionModeSimulate): Promise<SimulatedTransaction>;
385
+ approveAndDeposit(entrypointAddress: Address, tokenAddress: Address, amount: bigint, precommitment: bigint, options: OptionModeExecute): Promise<TransactionResponse>;
386
+ async approveAndDeposit(entrypointAddress: Address, tokenAddress: Address, amount: bigint, precommitment: bigint, options?: OptionModes): Promise<CallResult> {
387
+ const assetConfig = await this.entrypoint.assetConfig(tokenAddress);
388
+ const minimumDepositAmount = castBigInt(assetConfig.minimumDepositAmount);
389
+ if (amount < minimumDepositAmount) {
390
+ throw SNPoolError.amountTooSmall(`Expected at least ${minimumDepositAmount}, received ${amount}`);
391
+ }
392
+ const callApprove = this.erc20(tokenAddress).populate("approve", [entrypointAddress, amount]);
393
+ const callDeposit = this.entrypoint.populate("deposit", [tokenAddress, amount, precommitment]);
394
+ return _intentOptionWrapper([callApprove, callDeposit], options && { ...options, account: this.providerOrAccount });
395
+ }
396
+
383
397
  }
384
398
 
385
399
  export class AdminContractInteractions {
@@ -1,19 +1,19 @@
1
- import { Call, InvokeFunctionResponse, Account as SNAccount, SimulatedTransaction, TransactionType, UniversalDetails } from "starknet";
1
+ import { AllowArray, Call, InvokeFunctionResponse, Account as SNAccount, SimulatedTransaction, TransactionType, UniversalDetails } from "starknet";
2
2
  import { SNContractError, StarknetSDKError } from "../errors/index.js";
3
3
  import { parseContractError } from "../errors/contracts.errors.js";
4
4
 
5
5
  export async function executeIntent(
6
- account: SNAccount, call: Call, transactionDetails?: UniversalDetails
6
+ account: SNAccount, calls: AllowArray<Call>, transactionDetails?: UniversalDetails
7
7
  ): Promise<InvokeFunctionResponse> {
8
- const sim = await simulateIntent(account, call);
9
- return account.execute(call, { ...sim, ...(transactionDetails || {}) });
8
+ const sim = await simulateIntent(account, calls);
9
+ return account.execute(calls, { ...sim, ...(transactionDetails || {}) });
10
10
  }
11
11
 
12
12
  export async function simulateIntent(
13
- account: SNAccount, call: Call
13
+ account: SNAccount, calls: AllowArray<Call>
14
14
  ): Promise<SimulatedTransaction> {
15
15
  const simRes = await account.simulateTransaction([
16
- { type: TransactionType.INVOKE, payload: [call] },
16
+ { type: TransactionType.INVOKE, payload: calls },
17
17
  ]);
18
18
 
19
19
  const sim = simRes[0];
@@ -5,6 +5,10 @@ export enum SNBaseErrorCode {
5
5
  INTERNAL
6
6
  }
7
7
 
8
+ export enum SNPoolErrorCode {
9
+ AMOUNT_TOO_SMALL
10
+ }
11
+
8
12
  export enum SNContractErrorCode {
9
13
  DEPOSIT_FAILED,
10
14
  INVALID_IPFS_CID,
@@ -15,7 +19,7 @@ export enum SNFormatErrorCode {
15
19
  CONVERSION
16
20
  }
17
21
 
18
- export type SNErrorCode = SNBaseErrorCode | SNContractErrorCode | SNFormatErrorCode;
22
+ export type SNErrorCode = SNBaseErrorCode | SNPoolErrorCode | SNContractErrorCode | SNFormatErrorCode;
19
23
 
20
24
  export class StarknetSDKError extends Error {
21
25
 
@@ -52,6 +56,14 @@ export class SNFormatError extends StarknetSDKError {
52
56
 
53
57
  }
54
58
 
59
+ export class SNPoolError extends StarknetSDKError {
60
+
61
+ public static amountTooSmall(conetxt?: string) {
62
+ const _context = conetxt || "Amount is less than expected by pool";
63
+ return new this(_context, SNPoolErrorCode.AMOUNT_TOO_SMALL);
64
+ }
65
+
66
+ }
55
67
  export class SNContractError extends StarknetSDKError {
56
68
 
57
69
  public static depositFailed() {