@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.
- package/dist/contracts/contracts.service.d.ts +6 -1
- package/dist/contracts/contracts.service.js +15 -5
- package/dist/contracts/contracts.service.js.map +1 -1
- package/dist/contracts/transactionHandler.d.ts +3 -3
- package/dist/contracts/transactionHandler.js +5 -5
- package/dist/contracts/transactionHandler.js.map +1 -1
- package/dist/errors/index.d.ts +7 -1
- package/dist/errors/index.js +12 -1
- package/dist/errors/index.js.map +1 -1
- package/package.json +1 -1
- package/src/contracts/contracts.service.ts +22 -8
- package/src/contracts/transactionHandler.ts +6 -6
- package/src/errors/index.ts +13 -1
|
@@ -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
|
|
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(
|
|
35
|
+
function _intentOptionWrapper(calls, options) {
|
|
36
36
|
if (options === undefined || !_isAccount(options.account)) {
|
|
37
|
-
return Promise.resolve(
|
|
37
|
+
return Promise.resolve(calls);
|
|
38
38
|
}
|
|
39
39
|
else if (options.mode === Mode.SIMULATE) {
|
|
40
|
-
return (0, transactionHandler_js_1.simulateIntent)(options.account,
|
|
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,
|
|
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":";;;AACA,
|
|
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,
|
|
3
|
-
export declare function simulateIntent(account: SNAccount,
|
|
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,
|
|
9
|
-
const sim = await simulateIntent(account,
|
|
10
|
-
return account.execute(
|
|
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,
|
|
12
|
+
async function simulateIntent(account, calls) {
|
|
13
13
|
const simRes = await account.simulateTransaction([
|
|
14
|
-
{ type: starknet_1.TransactionType.INVOKE, payload:
|
|
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,
|
|
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"}
|
package/dist/errors/index.d.ts
CHANGED
|
@@ -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;
|
package/dist/errors/index.js
CHANGED
|
@@ -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);
|
package/dist/errors/index.js.map
CHANGED
|
@@ -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,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
|
|
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(
|
|
68
|
+
function _intentOptionWrapper(calls: AllowArray<Call>, options?: CallOptions): Promise<CallResult> {
|
|
69
69
|
if (options === undefined || !_isAccount(options.account)) {
|
|
70
|
-
return Promise.resolve(
|
|
70
|
+
return Promise.resolve(calls);
|
|
71
71
|
}
|
|
72
72
|
else if (options.mode === Mode.SIMULATE) {
|
|
73
|
-
return simulateIntent(options.account,
|
|
73
|
+
return simulateIntent(options.account, calls);
|
|
74
74
|
}
|
|
75
75
|
else if (options.mode === Mode.EXECUTE) {
|
|
76
|
-
return executeIntent(options.account,
|
|
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,
|
|
6
|
+
account: SNAccount, calls: AllowArray<Call>, transactionDetails?: UniversalDetails
|
|
7
7
|
): Promise<InvokeFunctionResponse> {
|
|
8
|
-
const sim = await simulateIntent(account,
|
|
9
|
-
return account.execute(
|
|
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,
|
|
13
|
+
account: SNAccount, calls: AllowArray<Call>
|
|
14
14
|
): Promise<SimulatedTransaction> {
|
|
15
15
|
const simRes = await account.simulateTransaction([
|
|
16
|
-
{ type: TransactionType.INVOKE, payload:
|
|
16
|
+
{ type: TransactionType.INVOKE, payload: calls },
|
|
17
17
|
]);
|
|
18
18
|
|
|
19
19
|
const sim = simRes[0];
|
package/src/errors/index.ts
CHANGED
|
@@ -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() {
|