@funkit/core 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +110 -0
- package/dist/fetch-polyfill.d.ts +1 -0
- package/dist/fetch-polyfill.js +35 -0
- package/dist/fetch-polyfill.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +29 -0
- package/dist/index.js.map +1 -0
- package/dist/src/abis/ApproveAndExec.json +1 -0
- package/dist/src/abis/ApproveAndSwap.json +1 -0
- package/dist/src/abis/ERC20.json +1 -0
- package/dist/src/abis/ERC721.json +1 -0
- package/dist/src/abis/EntryPoint.json +1 -0
- package/dist/src/abis/EstimationPaymaster.json +1 -0
- package/dist/src/abis/FeePercentOracle.json +1 -0
- package/dist/src/abis/FunWallet.json +1 -0
- package/dist/src/abis/FunWalletFactory.json +1 -0
- package/dist/src/abis/GaslessPaymaster.json +1 -0
- package/dist/src/abis/LidoWithdrawQueue.json +1 -0
- package/dist/src/abis/RoleBasedAccessControl.json +1 -0
- package/dist/src/abis/TestNFT.json +1 -0
- package/dist/src/abis/TokenPaymaster.json +1 -0
- package/dist/src/abis/TokenPriceOracle.json +1 -0
- package/dist/src/abis/UniswapV2Factory.json +1 -0
- package/dist/src/abis/UniswapV2Router02.json +1 -0
- package/dist/src/abis/UniswapV3LimitOrder.json +1 -0
- package/dist/src/abis/UserAuthentication.json +1 -0
- package/dist/src/abis/univ3factory.json +1 -0
- package/dist/src/abis/univ3quoter.json +1 -0
- package/dist/src/abis/univ3router.json +1 -0
- package/dist/src/actions/AccessControl.d.ts +9 -0
- package/dist/src/actions/AccessControl.js +88 -0
- package/dist/src/actions/AccessControl.js.map +1 -0
- package/dist/src/actions/BatchActions.d.ts +3 -0
- package/dist/src/actions/BatchActions.js +12 -0
- package/dist/src/actions/BatchActions.js.map +1 -0
- package/dist/src/actions/FirstClassActions.d.ts +161 -0
- package/dist/src/actions/FirstClassActions.js +347 -0
- package/dist/src/actions/FirstClassActions.js.map +1 -0
- package/dist/src/actions/Group.d.ts +6 -0
- package/dist/src/actions/Group.js +44 -0
- package/dist/src/actions/Group.js.map +1 -0
- package/dist/src/actions/LimitOrder.d.ts +4 -0
- package/dist/src/actions/LimitOrder.js +45 -0
- package/dist/src/actions/LimitOrder.js.map +1 -0
- package/dist/src/actions/Stake.d.ts +8 -0
- package/dist/src/actions/Stake.js +124 -0
- package/dist/src/actions/Stake.js.map +1 -0
- package/dist/src/actions/Swap.d.ts +9 -0
- package/dist/src/actions/Swap.js +169 -0
- package/dist/src/actions/Swap.js.map +1 -0
- package/dist/src/actions/Token.d.ts +12 -0
- package/dist/src/actions/Token.js +102 -0
- package/dist/src/actions/Token.js.map +1 -0
- package/dist/src/actions/index.d.ts +7 -0
- package/dist/src/actions/index.js +24 -0
- package/dist/src/actions/index.js.map +1 -0
- package/dist/src/actions/types.d.ts +117 -0
- package/dist/src/actions/types.js +11 -0
- package/dist/src/actions/types.js.map +1 -0
- package/dist/src/apis/AccessControlApis.d.ts +5 -0
- package/dist/src/apis/AccessControlApis.js +22 -0
- package/dist/src/apis/AccessControlApis.js.map +1 -0
- package/dist/src/apis/AssetApis.d.ts +79 -0
- package/dist/src/apis/AssetApis.js +100 -0
- package/dist/src/apis/AssetApis.js.map +1 -0
- package/dist/src/apis/ContractApis.d.ts +1 -0
- package/dist/src/apis/ContractApis.js +11 -0
- package/dist/src/apis/ContractApis.js.map +1 -0
- package/dist/src/apis/GroupApis.d.ts +8 -0
- package/dist/src/apis/GroupApis.js +45 -0
- package/dist/src/apis/GroupApis.js.map +1 -0
- package/dist/src/apis/InfoApis.d.ts +6 -0
- package/dist/src/apis/InfoApis.js +59 -0
- package/dist/src/apis/InfoApis.js.map +1 -0
- package/dist/src/apis/ListenerApis.d.ts +3 -0
- package/dist/src/apis/ListenerApis.js +36 -0
- package/dist/src/apis/ListenerApis.js.map +1 -0
- package/dist/src/apis/NFTApis.d.ts +22 -0
- package/dist/src/apis/NFTApis.js +34 -0
- package/dist/src/apis/NFTApis.js.map +1 -0
- package/dist/src/apis/OnOffRampApis.d.ts +2 -0
- package/dist/src/apis/OnOffRampApis.js +23 -0
- package/dist/src/apis/OnOffRampApis.js.map +1 -0
- package/dist/src/apis/OnOffRampUtils.d.ts +2 -0
- package/dist/src/apis/OnOffRampUtils.js +23 -0
- package/dist/src/apis/OnOffRampUtils.js.map +1 -0
- package/dist/src/apis/OperationApis.d.ts +14 -0
- package/dist/src/apis/OperationApis.js +77 -0
- package/dist/src/apis/OperationApis.js.map +1 -0
- package/dist/src/apis/PaymasterApis.d.ts +15 -0
- package/dist/src/apis/PaymasterApis.js +89 -0
- package/dist/src/apis/PaymasterApis.js.map +1 -0
- package/dist/src/apis/UserApis.d.ts +12 -0
- package/dist/src/apis/UserApis.js +77 -0
- package/dist/src/apis/UserApis.js.map +1 -0
- package/dist/src/apis/index.d.ts +10 -0
- package/dist/src/apis/index.js +27 -0
- package/dist/src/apis/index.js.map +1 -0
- package/dist/src/apis/types.d.ts +49 -0
- package/dist/src/apis/types.js +3 -0
- package/dist/src/apis/types.js.map +1 -0
- package/dist/src/auth/Auth.d.ts +81 -0
- package/dist/src/auth/Auth.js +317 -0
- package/dist/src/auth/Auth.js.map +1 -0
- package/dist/src/auth/SessionKeyAuth.d.ts +19 -0
- package/dist/src/auth/SessionKeyAuth.js +118 -0
- package/dist/src/auth/SessionKeyAuth.js.map +1 -0
- package/dist/src/auth/index.d.ts +2 -0
- package/dist/src/auth/index.js +19 -0
- package/dist/src/auth/index.js.map +1 -0
- package/dist/src/auth/types.d.ts +20 -0
- package/dist/src/auth/types.js +3 -0
- package/dist/src/auth/types.js.map +1 -0
- package/dist/src/common/constants.d.ts +1072 -0
- package/dist/src/common/constants.js +153 -0
- package/dist/src/common/constants.js.map +1 -0
- package/dist/src/common/index.d.ts +2 -0
- package/dist/src/common/index.js +19 -0
- package/dist/src/common/index.js.map +1 -0
- package/dist/src/common/types.d.ts +32 -0
- package/dist/src/common/types.js +3 -0
- package/dist/src/common/types.js.map +1 -0
- package/dist/src/config/Config.d.ts +3 -0
- package/dist/src/config/Config.js +46 -0
- package/dist/src/config/Config.js.map +1 -0
- package/dist/src/config/index.d.ts +2 -0
- package/dist/src/config/index.js +19 -0
- package/dist/src/config/index.js.map +1 -0
- package/dist/src/config/types.d.ts +21 -0
- package/dist/src/config/types.js +3 -0
- package/dist/src/config/types.js.map +1 -0
- package/dist/src/data/Chain.d.ts +29 -0
- package/dist/src/data/Chain.js +174 -0
- package/dist/src/data/Chain.js.map +1 -0
- package/dist/src/data/NFT.d.ts +24 -0
- package/dist/src/data/NFT.js +104 -0
- package/dist/src/data/NFT.js.map +1 -0
- package/dist/src/data/Operation.d.ts +33 -0
- package/dist/src/data/Operation.js +68 -0
- package/dist/src/data/Operation.js.map +1 -0
- package/dist/src/data/SolidityData.d.ts +8 -0
- package/dist/src/data/SolidityData.js +72 -0
- package/dist/src/data/SolidityData.js.map +1 -0
- package/dist/src/data/Token.d.ts +26 -0
- package/dist/src/data/Token.js +122 -0
- package/dist/src/data/Token.js.map +1 -0
- package/dist/src/data/index.d.ts +6 -0
- package/dist/src/data/index.js +23 -0
- package/dist/src/data/index.js.map +1 -0
- package/dist/src/data/types.d.ts +112 -0
- package/dist/src/data/types.js +25 -0
- package/dist/src/data/types.js.map +1 -0
- package/dist/src/errors/BaseError.d.ts +9 -0
- package/dist/src/errors/BaseError.js +23 -0
- package/dist/src/errors/BaseError.js.map +1 -0
- package/dist/src/errors/ClientError.d.ts +22 -0
- package/dist/src/errors/ClientError.js +75 -0
- package/dist/src/errors/ClientError.js.map +1 -0
- package/dist/src/errors/ServerError.d.ts +7 -0
- package/dist/src/errors/ServerError.js +18 -0
- package/dist/src/errors/ServerError.js.map +1 -0
- package/dist/src/errors/index.d.ts +4 -0
- package/dist/src/errors/index.js +21 -0
- package/dist/src/errors/index.js.map +1 -0
- package/dist/src/errors/types.d.ts +54 -0
- package/dist/src/errors/types.js +45 -0
- package/dist/src/errors/types.js.map +1 -0
- package/dist/src/sponsors/GaslessSponsor.d.ts +19 -0
- package/dist/src/sponsors/GaslessSponsor.js +91 -0
- package/dist/src/sponsors/GaslessSponsor.js.map +1 -0
- package/dist/src/sponsors/Sponsor.d.ts +31 -0
- package/dist/src/sponsors/Sponsor.js +94 -0
- package/dist/src/sponsors/Sponsor.js.map +1 -0
- package/dist/src/sponsors/TokenSponsor.d.ts +40 -0
- package/dist/src/sponsors/TokenSponsor.js +271 -0
- package/dist/src/sponsors/TokenSponsor.js.map +1 -0
- package/dist/src/sponsors/index.d.ts +3 -0
- package/dist/src/sponsors/index.js +20 -0
- package/dist/src/sponsors/index.js.map +1 -0
- package/dist/src/sponsors/types.d.ts +9 -0
- package/dist/src/sponsors/types.js +10 -0
- package/dist/src/sponsors/types.js.map +1 -0
- package/dist/src/utils/ApiUtils.d.ts +19 -0
- package/dist/src/utils/ApiUtils.js +97 -0
- package/dist/src/utils/ApiUtils.js.map +1 -0
- package/dist/src/utils/AuthUtils.d.ts +4 -0
- package/dist/src/utils/AuthUtils.js +54 -0
- package/dist/src/utils/AuthUtils.js.map +1 -0
- package/dist/src/utils/ChainUtils.d.ts +12 -0
- package/dist/src/utils/ChainUtils.js +89 -0
- package/dist/src/utils/ChainUtils.js.map +1 -0
- package/dist/src/utils/MerkleUtils.d.ts +18 -0
- package/dist/src/utils/MerkleUtils.js +96 -0
- package/dist/src/utils/MerkleUtils.js.map +1 -0
- package/dist/src/utils/PaymasterUtils.d.ts +3 -0
- package/dist/src/utils/PaymasterUtils.js +17 -0
- package/dist/src/utils/PaymasterUtils.js.map +1 -0
- package/dist/src/utils/SwapUtils.d.ts +35 -0
- package/dist/src/utils/SwapUtils.js +193 -0
- package/dist/src/utils/SwapUtils.js.map +1 -0
- package/dist/src/utils/TypeUtils.d.ts +1 -0
- package/dist/src/utils/TypeUtils.js +13 -0
- package/dist/src/utils/TypeUtils.js.map +1 -0
- package/dist/src/utils/UserOpUtils.d.ts +12 -0
- package/dist/src/utils/UserOpUtils.js +166 -0
- package/dist/src/utils/UserOpUtils.js.map +1 -0
- package/dist/src/utils/ViemUtils.d.ts +9 -0
- package/dist/src/utils/ViemUtils.js +30 -0
- package/dist/src/utils/ViemUtils.js.map +1 -0
- package/dist/src/utils/WalletUtils.d.ts +11 -0
- package/dist/src/utils/WalletUtils.js +61 -0
- package/dist/src/utils/WalletUtils.js.map +1 -0
- package/dist/src/utils/index.d.ts +7 -0
- package/dist/src/utils/index.js +24 -0
- package/dist/src/utils/index.js.map +1 -0
- package/dist/src/viem/ContractInterface.d.ts +19 -0
- package/dist/src/viem/ContractInterface.js +88 -0
- package/dist/src/viem/ContractInterface.js.map +1 -0
- package/dist/src/viem/Converter.d.ts +1770 -0
- package/dist/src/viem/Converter.js +50 -0
- package/dist/src/viem/Converter.js.map +1 -0
- package/dist/src/viem/index.d.ts +2 -0
- package/dist/src/viem/index.js +19 -0
- package/dist/src/viem/index.js.map +1 -0
- package/dist/src/wallet/FunWallet.d.ts +185 -0
- package/dist/src/wallet/FunWallet.js +720 -0
- package/dist/src/wallet/FunWallet.js.map +1 -0
- package/dist/src/wallet/index.d.ts +2 -0
- package/dist/src/wallet/index.js +19 -0
- package/dist/src/wallet/index.js.map +1 -0
- package/dist/src/wallet/types.d.ts +13 -0
- package/dist/src/wallet/types.js +3 -0
- package/dist/src/wallet/types.js.map +1 -0
- package/package.json +89 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/data/types.ts"],"names":[],"mappings":";;;AA8EA,IAAY,QAGX;AAHD,WAAY,QAAQ;IAChB,yCAAS,CAAA;IACT,iDAAa,CAAA;AACjB,CAAC,EAHW,QAAQ,wBAAR,QAAQ,QAGnB;AAQD,IAAY,aAIX;AAJD,WAAY,aAAa;IACrB,sDAAqC,CAAA;IACrC,oDAAmC,CAAA;IACnC,wCAAuB,CAAA;AAC3B,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB;AAED,IAAY,eAQX;AARD,WAAY,eAAe;IACvB,2BAAQ,CAAA;IACR,wDAAqC,CAAA;IACrC,wCAAqB,CAAA;IACrB,sCAAmB,CAAA;IACnB,4CAAyB,CAAA;IACzB,8CAA2B,CAAA;IAC3B,0CAAuB,CAAA;AAC3B,CAAC,EARW,eAAe,+BAAf,eAAe,QAQ1B"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare class BaseError extends Error {
|
|
2
|
+
baseType: string;
|
|
3
|
+
type: string;
|
|
4
|
+
code: string;
|
|
5
|
+
paramsUsed: any;
|
|
6
|
+
timestamp: string;
|
|
7
|
+
constructor(baseType: string, type: string, code: string, msg: string, paramsUsed: any, fixSuggestion: string, docLink: string, isInternal?: boolean);
|
|
8
|
+
loadEnd(): void;
|
|
9
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseError = void 0;
|
|
4
|
+
const discord = "https://discord.gg/7ZRAv4es";
|
|
5
|
+
class BaseError extends Error {
|
|
6
|
+
constructor(baseType, type, code, msg, paramsUsed, fixSuggestion, docLink, isInternal = false) {
|
|
7
|
+
super(`${msg}\n\n${fixSuggestion}\nDocs: ${docLink}\nDiscord: ${discord}`);
|
|
8
|
+
this.baseType = baseType;
|
|
9
|
+
this.type = type;
|
|
10
|
+
this.code = code;
|
|
11
|
+
this.paramsUsed = paramsUsed;
|
|
12
|
+
if (isInternal) {
|
|
13
|
+
this.loadEnd();
|
|
14
|
+
}
|
|
15
|
+
this.message += "\n\nTrace:";
|
|
16
|
+
this.timestamp = new Date().toUTCString();
|
|
17
|
+
}
|
|
18
|
+
loadEnd() {
|
|
19
|
+
this.message += "\n\nThis is an internal sdk error. Please contact the fun team at our Discord for the fastest response.";
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.BaseError = BaseError;
|
|
23
|
+
//# sourceMappingURL=BaseError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseError.js","sourceRoot":"","sources":["../../../src/errors/BaseError.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG,6BAA6B,CAAA;AAC7C,MAAa,SAAU,SAAQ,KAAK;IAGhC,YACW,QAAgB,EAChB,IAAY,EACZ,IAAY,EACnB,GAAW,EAEJ,UAAe,EACtB,aAAqB,EACrB,OAAe,EACf,UAAU,GAAG,KAAK;QAElB,KAAK,CAAC,GAAG,GAAG,OAAO,aAAa,WAAW,OAAO,cAAc,OAAO,EAAE,CAAC,CAAA;QAVnE,aAAQ,GAAR,QAAQ,CAAQ;QAChB,SAAI,GAAJ,IAAI,CAAQ;QACZ,SAAI,GAAJ,IAAI,CAAQ;QAGZ,eAAU,GAAV,UAAU,CAAK;QAMtB,IAAI,UAAU,EAAE;YACZ,IAAI,CAAC,OAAO,EAAE,CAAA;SACjB;QACD,IAAI,CAAC,OAAO,IAAI,YAAY,CAAA;QAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAC7C,CAAC;IAED,OAAO;QACH,IAAI,CAAC,OAAO,IAAI,yGAAyG,CAAA;IAC7H,CAAC;CACJ;AAzBD,8BAyBC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { BaseError } from "./BaseError";
|
|
2
|
+
export declare class ClientError extends BaseError {
|
|
3
|
+
constructor(type: string, code: string, msg: string, paramsUsed: any, fixSuggestion: string, docLink: string);
|
|
4
|
+
}
|
|
5
|
+
export declare class InvalidParameterError extends ClientError {
|
|
6
|
+
constructor(code: string, msg: string, paramsUsed: any, fixSuggestion: string, docLink: string);
|
|
7
|
+
}
|
|
8
|
+
export declare class ResourceNotFoundError extends ClientError {
|
|
9
|
+
constructor(code: string, msg: string, paramsUsed: any, fixSuggestion: string, docLink: string);
|
|
10
|
+
}
|
|
11
|
+
export declare class InvalidActionError extends ClientError {
|
|
12
|
+
constructor(code: string, msg: string, paramsUsed: any, fixSuggestion: string, docLink: string);
|
|
13
|
+
}
|
|
14
|
+
export declare class ThrottlingError extends ClientError {
|
|
15
|
+
constructor(code: string, msg: string, paramsUsed: any, fixSuggestion: string, docLink: string);
|
|
16
|
+
}
|
|
17
|
+
export declare class AccessDeniedError extends ClientError {
|
|
18
|
+
constructor(code: string, msg: string, paramsUsed: any, fixSuggestion: string, docLink: string);
|
|
19
|
+
}
|
|
20
|
+
export declare class UserOpFailureError extends ClientError {
|
|
21
|
+
constructor(code: string, msg: string, paramsUsed: any, fixSuggestion: string, docLink: string);
|
|
22
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UserOpFailureError = exports.AccessDeniedError = exports.ThrottlingError = exports.InvalidActionError = exports.ResourceNotFoundError = exports.InvalidParameterError = exports.ClientError = void 0;
|
|
4
|
+
const BaseError_1 = require("./BaseError");
|
|
5
|
+
const types_1 = require("./types");
|
|
6
|
+
class ClientError extends BaseError_1.BaseError {
|
|
7
|
+
constructor(type, code, msg, paramsUsed, fixSuggestion, docLink) {
|
|
8
|
+
super(types_1.ErrorBaseType.ClientError, type, code, msg, paramsUsed, fixSuggestion, docLink, false);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.ClientError = ClientError;
|
|
12
|
+
class InvalidParameterError extends ClientError {
|
|
13
|
+
constructor(code, msg, paramsUsed, fixSuggestion, docLink) {
|
|
14
|
+
super(types_1.ErrorType.InvalidParameter, code, msg, paramsUsed, fixSuggestion, docLink);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.InvalidParameterError = InvalidParameterError;
|
|
18
|
+
class ResourceNotFoundError extends ClientError {
|
|
19
|
+
constructor(code, msg, paramsUsed, fixSuggestion, docLink) {
|
|
20
|
+
if (msg.includes("Chain name not found")) {
|
|
21
|
+
const { reqId } = JSON.parse(msg);
|
|
22
|
+
msg = ": Chain name not found or not supported.";
|
|
23
|
+
fixSuggestion = "Change your EnvOptions to the correct chain identifier.";
|
|
24
|
+
super(types_1.ErrorType.ResourceNotFound, types_1.ErrorCode.ChainNotSupported, msg, { reqId }, fixSuggestion, docLink);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
super(types_1.ErrorType.ResourceNotFound, code, msg, paramsUsed, fixSuggestion, docLink);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.ResourceNotFoundError = ResourceNotFoundError;
|
|
32
|
+
class InvalidActionError extends ClientError {
|
|
33
|
+
constructor(code, msg, paramsUsed, fixSuggestion, docLink) {
|
|
34
|
+
super(types_1.ErrorType.InvalidAction, code, msg, paramsUsed, fixSuggestion, docLink);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.InvalidActionError = InvalidActionError;
|
|
38
|
+
class ThrottlingError extends ClientError {
|
|
39
|
+
constructor(code, msg, paramsUsed, fixSuggestion, docLink) {
|
|
40
|
+
super(types_1.ErrorType.ThrottlingError, code, msg, paramsUsed, fixSuggestion, docLink);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.ThrottlingError = ThrottlingError;
|
|
44
|
+
class AccessDeniedError extends ClientError {
|
|
45
|
+
constructor(code, msg, paramsUsed, fixSuggestion, docLink) {
|
|
46
|
+
super(types_1.ErrorType.AccessDeniedError, code, msg, paramsUsed, fixSuggestion, docLink);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.AccessDeniedError = AccessDeniedError;
|
|
50
|
+
class UserOpFailureError extends ClientError {
|
|
51
|
+
constructor(code, msg, paramsUsed, fixSuggestion, docLink) {
|
|
52
|
+
if (msg.includes("AA21")) {
|
|
53
|
+
const { reqId } = JSON.parse(msg);
|
|
54
|
+
msg = types_1.ErrorCode.WalletPrefundError + ": Your wallet lacks funds for this transaction.";
|
|
55
|
+
fixSuggestion = `Wallet Address: ${paramsUsed.body.userOp.sender}`;
|
|
56
|
+
super(types_1.ErrorType.UserOpFailureError, types_1.ErrorCode.WalletPrefundError, msg, { reqId }, fixSuggestion, docLink);
|
|
57
|
+
}
|
|
58
|
+
else if (msg.includes("AA33 reverted: FW332")) {
|
|
59
|
+
const { reqId } = JSON.parse(msg);
|
|
60
|
+
msg =
|
|
61
|
+
types_1.ErrorCode.GasSponsorFundError +
|
|
62
|
+
": " +
|
|
63
|
+
(paramsUsed.body.userOp.paymasterAndData.length > 122
|
|
64
|
+
? "Your wallet does not have enough erc-20 tokens to pay for gas."
|
|
65
|
+
: "Your FunWallet has not approved enough ERC-20s for the paymaster smart contract to pay for gas. Use the approve function in the TokenSponsor class.");
|
|
66
|
+
fixSuggestion = `Wallet Address: ${paramsUsed.body.userOp.sender}`;
|
|
67
|
+
super(types_1.ErrorType.UserOpFailureError, types_1.ErrorCode.GasSponsorFundError, msg, { reqId }, fixSuggestion, docLink);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
super(types_1.ErrorType.UserOpFailureError, code, msg, paramsUsed, fixSuggestion, docLink);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.UserOpFailureError = UserOpFailureError;
|
|
75
|
+
//# sourceMappingURL=ClientError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClientError.js","sourceRoot":"","sources":["../../../src/errors/ClientError.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BaseError } from "./BaseError";
|
|
2
|
+
export declare class ServerError extends BaseError {
|
|
3
|
+
constructor(type: string, code: string, msg: string, paramsUsed: any, fixSuggestion: string, docLink: string);
|
|
4
|
+
}
|
|
5
|
+
export declare class InternalFailureError extends ServerError {
|
|
6
|
+
constructor(code: string, msg: string, paramsUsed: any, fixSuggestion: string, docLink: string);
|
|
7
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InternalFailureError = exports.ServerError = void 0;
|
|
4
|
+
const BaseError_1 = require("./BaseError");
|
|
5
|
+
const types_1 = require("./types");
|
|
6
|
+
class ServerError extends BaseError_1.BaseError {
|
|
7
|
+
constructor(type, code, msg, paramsUsed, fixSuggestion, docLink) {
|
|
8
|
+
super(types_1.ErrorBaseType.ServerError, type, code, msg, paramsUsed, fixSuggestion, docLink, true);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.ServerError = ServerError;
|
|
12
|
+
class InternalFailureError extends ServerError {
|
|
13
|
+
constructor(code, msg, paramsUsed, fixSuggestion, docLink) {
|
|
14
|
+
super(types_1.ErrorType.InternalServerFailure, code, msg, paramsUsed, fixSuggestion, docLink);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.InternalFailureError = InternalFailureError;
|
|
18
|
+
//# sourceMappingURL=ServerError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServerError.js","sourceRoot":"","sources":["../../../src/errors/ServerError.ts"],"names":[],"mappings":";;;AAAA,2CAAuC;AACvC,mCAAkD;AAElD,MAAa,WAAY,SAAQ,qBAAS;IACtC,YAAY,IAAY,EAAE,IAAY,EAAE,GAAW,EAAE,UAAe,EAAE,aAAqB,EAAE,OAAe;QACxG,KAAK,CAAC,qBAAa,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;IAC/F,CAAC;CACJ;AAJD,kCAIC;AAED,MAAa,oBAAqB,SAAQ,WAAW;IACjD,YAAY,IAAY,EAAE,GAAW,EAAE,UAAe,EAAE,aAAqB,EAAE,OAAe;QAC1F,KAAK,CAAC,iBAAS,CAAC,qBAAqB,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,CAAC,CAAA;IACzF,CAAC;CACJ;AAJD,oDAIC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./BaseError"), exports);
|
|
18
|
+
__exportStar(require("./ClientError"), exports);
|
|
19
|
+
__exportStar(require("./ServerError"), exports);
|
|
20
|
+
__exportStar(require("./types"), exports);
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/errors/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA2B;AAC3B,gDAA6B;AAC7B,gDAA6B;AAC7B,0CAAuB"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export type ErrorData = {
|
|
2
|
+
location: string;
|
|
3
|
+
error?: {
|
|
4
|
+
txDetails?: ErrorTransactionDetails;
|
|
5
|
+
reasonData?: {
|
|
6
|
+
title: string;
|
|
7
|
+
reasons: string[];
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
export type ErrorTransactionDetails = {
|
|
12
|
+
method: string;
|
|
13
|
+
params: any[];
|
|
14
|
+
contractAddress?: string;
|
|
15
|
+
chainId?: number | string;
|
|
16
|
+
};
|
|
17
|
+
export declare enum ErrorBaseType {
|
|
18
|
+
ClientError = "ClientError",
|
|
19
|
+
ServerError = "ServerError"
|
|
20
|
+
}
|
|
21
|
+
export declare enum ErrorType {
|
|
22
|
+
InvalidParameter = "InvalidParameter",
|
|
23
|
+
InternalServerFailure = "InternalServerFailure",
|
|
24
|
+
ResourceNotFound = "ResourceNotFound",
|
|
25
|
+
InvalidAction = "InvalidAction",
|
|
26
|
+
ThrottlingError = "ThrottlingError",
|
|
27
|
+
AccessDeniedError = "AccessDeniedError",
|
|
28
|
+
UserOpFailureError = "UserOpFailureError"
|
|
29
|
+
}
|
|
30
|
+
export declare enum ErrorCode {
|
|
31
|
+
MissingParameter = "MissingParameter",
|
|
32
|
+
InvalidParameter = "InvalidParameter",
|
|
33
|
+
InvalidThreshold = "InvalidThreshold",
|
|
34
|
+
InvalidChainIdentifier = "InvalidChainIdentifier",
|
|
35
|
+
InvalidNFTIdentifier = "InvalidNFTIdentifier",
|
|
36
|
+
InsufficientSignatures = "InsufficientSignatures",
|
|
37
|
+
InvalidParameterCombination = "InvalidParameterCombination",
|
|
38
|
+
CheckPointHintsNotFound = "CheckPointHintsNotFound",
|
|
39
|
+
GroupNotFound = "GroupNotFound",
|
|
40
|
+
TokenNotFound = "TokenNotFound",
|
|
41
|
+
AddressNotFound = "AddressNotFound",
|
|
42
|
+
UserAlreadyExists = "UserAlreadyExists",
|
|
43
|
+
UserNotFound = "UserNotFound",
|
|
44
|
+
ChainNotSupported = "ChainNotSupported",
|
|
45
|
+
ServerMissingData = "ServerMissingData",
|
|
46
|
+
ServerFailure = "ServerFailure",
|
|
47
|
+
UnknownServerError = "UnknownServerError",
|
|
48
|
+
ServerConnectionError = "ServerConnectionError",
|
|
49
|
+
UserOpFailureError = "UserOpFailureError",
|
|
50
|
+
Unauthorized = "Unauthorized",
|
|
51
|
+
RequestLimitExceeded = "RequestLimitExceeded",
|
|
52
|
+
WalletPrefundError = "PrefundError",
|
|
53
|
+
GasSponsorFundError = "GasSponsorFundError"
|
|
54
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ErrorCode = exports.ErrorType = exports.ErrorBaseType = void 0;
|
|
4
|
+
var ErrorBaseType;
|
|
5
|
+
(function (ErrorBaseType) {
|
|
6
|
+
ErrorBaseType["ClientError"] = "ClientError";
|
|
7
|
+
ErrorBaseType["ServerError"] = "ServerError";
|
|
8
|
+
})(ErrorBaseType || (exports.ErrorBaseType = ErrorBaseType = {}));
|
|
9
|
+
var ErrorType;
|
|
10
|
+
(function (ErrorType) {
|
|
11
|
+
ErrorType["InvalidParameter"] = "InvalidParameter";
|
|
12
|
+
ErrorType["InternalServerFailure"] = "InternalServerFailure";
|
|
13
|
+
ErrorType["ResourceNotFound"] = "ResourceNotFound";
|
|
14
|
+
ErrorType["InvalidAction"] = "InvalidAction";
|
|
15
|
+
ErrorType["ThrottlingError"] = "ThrottlingError";
|
|
16
|
+
ErrorType["AccessDeniedError"] = "AccessDeniedError";
|
|
17
|
+
ErrorType["UserOpFailureError"] = "UserOpFailureError";
|
|
18
|
+
})(ErrorType || (exports.ErrorType = ErrorType = {}));
|
|
19
|
+
var ErrorCode;
|
|
20
|
+
(function (ErrorCode) {
|
|
21
|
+
ErrorCode["MissingParameter"] = "MissingParameter";
|
|
22
|
+
ErrorCode["InvalidParameter"] = "InvalidParameter";
|
|
23
|
+
ErrorCode["InvalidThreshold"] = "InvalidThreshold";
|
|
24
|
+
ErrorCode["InvalidChainIdentifier"] = "InvalidChainIdentifier";
|
|
25
|
+
ErrorCode["InvalidNFTIdentifier"] = "InvalidNFTIdentifier";
|
|
26
|
+
ErrorCode["InsufficientSignatures"] = "InsufficientSignatures";
|
|
27
|
+
ErrorCode["InvalidParameterCombination"] = "InvalidParameterCombination";
|
|
28
|
+
ErrorCode["CheckPointHintsNotFound"] = "CheckPointHintsNotFound";
|
|
29
|
+
ErrorCode["GroupNotFound"] = "GroupNotFound";
|
|
30
|
+
ErrorCode["TokenNotFound"] = "TokenNotFound";
|
|
31
|
+
ErrorCode["AddressNotFound"] = "AddressNotFound";
|
|
32
|
+
ErrorCode["UserAlreadyExists"] = "UserAlreadyExists";
|
|
33
|
+
ErrorCode["UserNotFound"] = "UserNotFound";
|
|
34
|
+
ErrorCode["ChainNotSupported"] = "ChainNotSupported";
|
|
35
|
+
ErrorCode["ServerMissingData"] = "ServerMissingData";
|
|
36
|
+
ErrorCode["ServerFailure"] = "ServerFailure";
|
|
37
|
+
ErrorCode["UnknownServerError"] = "UnknownServerError";
|
|
38
|
+
ErrorCode["ServerConnectionError"] = "ServerConnectionError";
|
|
39
|
+
ErrorCode["UserOpFailureError"] = "UserOpFailureError";
|
|
40
|
+
ErrorCode["Unauthorized"] = "Unauthorized";
|
|
41
|
+
ErrorCode["RequestLimitExceeded"] = "RequestLimitExceeded";
|
|
42
|
+
ErrorCode["WalletPrefundError"] = "PrefundError";
|
|
43
|
+
ErrorCode["GasSponsorFundError"] = "GasSponsorFundError";
|
|
44
|
+
})(ErrorCode || (exports.ErrorCode = ErrorCode = {}));
|
|
45
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/errors/types.ts"],"names":[],"mappings":";;;AAkBA,IAAY,aAGX;AAHD,WAAY,aAAa;IACrB,4CAA2B,CAAA;IAC3B,4CAA2B,CAAA;AAC/B,CAAC,EAHW,aAAa,6BAAb,aAAa,QAGxB;AAED,IAAY,SAQX;AARD,WAAY,SAAS;IACjB,kDAAqC,CAAA;IACrC,4DAA+C,CAAA;IAC/C,kDAAqC,CAAA;IACrC,4CAA+B,CAAA;IAC/B,gDAAmC,CAAA;IACnC,oDAAuC,CAAA;IACvC,sDAAyC,CAAA;AAC7C,CAAC,EARW,SAAS,yBAAT,SAAS,QAQpB;AAED,IAAY,SAwBX;AAxBD,WAAY,SAAS;IACjB,kDAAqC,CAAA;IACrC,kDAAqC,CAAA;IACrC,kDAAqC,CAAA;IACrC,8DAAiD,CAAA;IACjD,0DAA6C,CAAA;IAC7C,8DAAiD,CAAA;IACjD,wEAA2D,CAAA;IAC3D,gEAAmD,CAAA;IACnD,4CAA+B,CAAA;IAC/B,4CAA+B,CAAA;IAC/B,gDAAmC,CAAA;IACnC,oDAAuC,CAAA;IACvC,0CAA6B,CAAA;IAC7B,oDAAuC,CAAA;IACvC,oDAAuC,CAAA;IACvC,4CAA+B,CAAA;IAC/B,sDAAyC,CAAA;IACzC,4DAA+C,CAAA;IAC/C,sDAAyC,CAAA;IACzC,0CAA6B,CAAA;IAC7B,0DAA6C,CAAA;IAC7C,gDAAmC,CAAA;IACnC,wDAA2C,CAAA;AAC/C,CAAC,EAxBW,SAAS,yBAAT,SAAS,QAwBpB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Address } from "viem";
|
|
2
|
+
import { Sponsor } from "./Sponsor";
|
|
3
|
+
import { TransactionParams } from "../common";
|
|
4
|
+
import { EnvOption } from "../config";
|
|
5
|
+
export declare class GaslessSponsor extends Sponsor {
|
|
6
|
+
constructor(options?: EnvOption);
|
|
7
|
+
getFunSponsorAddress(options?: EnvOption): Promise<Address>;
|
|
8
|
+
getPaymasterAndData(options?: EnvOption): Promise<string>;
|
|
9
|
+
stake(depositor: Address, sponsor: Address, amount: number, options?: EnvOption): Promise<TransactionParams>;
|
|
10
|
+
unstake(sponsor: Address, receiver: Address, amount: number, options?: EnvOption): Promise<TransactionParams>;
|
|
11
|
+
getUnlockBlock(sponsor: Address, options?: EnvOption): Promise<number>;
|
|
12
|
+
getLockState(sponsor: Address, options?: EnvOption): Promise<boolean>;
|
|
13
|
+
getBalance(sponsor: Address, options?: EnvOption): Promise<bigint>;
|
|
14
|
+
lockDeposit(): Promise<TransactionParams>;
|
|
15
|
+
unlockDepositAfter(blocksToWait: number): Promise<TransactionParams>;
|
|
16
|
+
getSpenderBlacklistMode(spender: Address, sponsor: Address, options?: EnvOption): Promise<boolean>;
|
|
17
|
+
getSpenderWhitelistMode(spender: Address, sponsor: Address, options?: EnvOption): Promise<boolean>;
|
|
18
|
+
static getPaymasterAddress(options?: EnvOption): Promise<Address>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GaslessSponsor = void 0;
|
|
4
|
+
const viem_1 = require("viem");
|
|
5
|
+
const Sponsor_1 = require("./Sponsor");
|
|
6
|
+
const types_1 = require("./types");
|
|
7
|
+
const PaymasterApis_1 = require("../apis/PaymasterApis");
|
|
8
|
+
const common_1 = require("../common");
|
|
9
|
+
const data_1 = require("../data");
|
|
10
|
+
const errors_1 = require("../errors");
|
|
11
|
+
class GaslessSponsor extends Sponsor_1.Sponsor {
|
|
12
|
+
constructor(options = globalThis.globalEnvOption) {
|
|
13
|
+
super(options, common_1.GASLESS_PAYMASTER_CONTRACT_INTERFACE, "gaslessPaymasterAddress", types_1.PaymasterType.GaslessSponsor);
|
|
14
|
+
}
|
|
15
|
+
async getFunSponsorAddress(options = globalThis.globalEnvOption) {
|
|
16
|
+
if (!this.sponsorAddress) {
|
|
17
|
+
const chain = await data_1.Chain.getChain({ chainIdentifier: options.chain });
|
|
18
|
+
if (common_1.GASLESS_SPONSOR_SUPPORT_CHAINS.includes(await chain.getChainId())) {
|
|
19
|
+
this.sponsorAddress = await chain.getAddress("funGaslessSponsorAddress");
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
throw new errors_1.ResourceNotFoundError(errors_1.ErrorCode.MissingParameter, "The network you are working with does not support gasless Fun Sponsor. You will need to run and manage your own gasless sponsor.", { gaslessSponsorSupportChains: common_1.GASLESS_SPONSOR_SUPPORT_CHAINS, chain: await chain.getChainId() }, "Manage your own gasless sponsor, or use a supported network.", "https://docs.fun.xyz");
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return this.sponsorAddress;
|
|
26
|
+
}
|
|
27
|
+
async getPaymasterAndData(options = globalThis.globalEnvOption) {
|
|
28
|
+
const paymasterAddress = await this.getPaymasterAddress(options);
|
|
29
|
+
const sponsor = await this.getFunSponsorAddress(options);
|
|
30
|
+
return (0, viem_1.concat)([paymasterAddress, sponsor]);
|
|
31
|
+
}
|
|
32
|
+
async stake(depositor, sponsor, amount, options = globalThis.globalEnvOption) {
|
|
33
|
+
const amountdec = await data_1.Token.getDecimalAmount("eth", amount, options);
|
|
34
|
+
const chain = await data_1.Chain.getChain({ chainIdentifier: options.chain });
|
|
35
|
+
await (0, PaymasterApis_1.addTransaction)(await chain.getChainId(), Date.now(), "0x", {
|
|
36
|
+
action: "stake",
|
|
37
|
+
amount,
|
|
38
|
+
from: depositor,
|
|
39
|
+
to: await this.getPaymasterAddress(options),
|
|
40
|
+
token: "eth"
|
|
41
|
+
}, this.paymasterType, sponsor);
|
|
42
|
+
return this.contractInterface.encodeTransactionParams(await this.getPaymasterAddress(), "addDepositTo", [sponsor, amountdec], BigInt(amountdec));
|
|
43
|
+
}
|
|
44
|
+
async unstake(sponsor, receiver, amount, options = globalThis.globalEnvOption) {
|
|
45
|
+
const amountdec = await data_1.Token.getDecimalAmount("eth", amount, options);
|
|
46
|
+
const chain = await data_1.Chain.getChain({ chainIdentifier: options.chain });
|
|
47
|
+
await (0, PaymasterApis_1.addTransaction)(await chain.getChainId(), Date.now(), "0x", {
|
|
48
|
+
action: "unstake",
|
|
49
|
+
amount,
|
|
50
|
+
from: sponsor,
|
|
51
|
+
to: await this.getPaymasterAddress(options),
|
|
52
|
+
token: "eth"
|
|
53
|
+
}, this.paymasterType, receiver);
|
|
54
|
+
return this.contractInterface.encodeTransactionParams(await this.getPaymasterAddress(), "withdrawDepositTo", [receiver, amountdec]);
|
|
55
|
+
}
|
|
56
|
+
async getUnlockBlock(sponsor, options = globalThis.globalEnvOption) {
|
|
57
|
+
const chain = await data_1.Chain.getChain({ chainIdentifier: options.chain });
|
|
58
|
+
return await this.contractInterface.readFromChain(await this.getPaymasterAddress(options), "getUnlockBlock", [sponsor], chain);
|
|
59
|
+
}
|
|
60
|
+
async getLockState(sponsor, options = globalThis.globalEnvOption) {
|
|
61
|
+
const unlockBlock = Number(await this.getUnlockBlock(sponsor, options));
|
|
62
|
+
const chain = await data_1.Chain.getChain({ chainIdentifier: options.chain });
|
|
63
|
+
const client = await chain.getClient();
|
|
64
|
+
const currentBlock = await client.getBlockNumber();
|
|
65
|
+
return unlockBlock === 0 || unlockBlock > currentBlock;
|
|
66
|
+
}
|
|
67
|
+
async getBalance(sponsor, options = globalThis.globalEnvOption) {
|
|
68
|
+
const chain = await data_1.Chain.getChain({ chainIdentifier: options.chain });
|
|
69
|
+
return await this.contractInterface.readFromChain(await this.getPaymasterAddress(options), "getBalance", [sponsor], chain);
|
|
70
|
+
}
|
|
71
|
+
async lockDeposit() {
|
|
72
|
+
return this.contractInterface.encodeTransactionParams(await this.getPaymasterAddress(), "lockDeposit", []);
|
|
73
|
+
}
|
|
74
|
+
async unlockDepositAfter(blocksToWait) {
|
|
75
|
+
return this.contractInterface.encodeTransactionParams(await this.getPaymasterAddress(), "unlockDepositAfter", [blocksToWait]);
|
|
76
|
+
}
|
|
77
|
+
async getSpenderBlacklistMode(spender, sponsor, options = globalThis.globalEnvOption) {
|
|
78
|
+
const chain = await data_1.Chain.getChain({ chainIdentifier: options.chain });
|
|
79
|
+
return await this.contractInterface.readFromChain(await this.getPaymasterAddress(options), "getSpenderBlacklistMode", [spender, sponsor], chain);
|
|
80
|
+
}
|
|
81
|
+
async getSpenderWhitelistMode(spender, sponsor, options = globalThis.globalEnvOption) {
|
|
82
|
+
const chain = await data_1.Chain.getChain({ chainIdentifier: options.chain });
|
|
83
|
+
return await this.contractInterface.readFromChain(await this.getPaymasterAddress(options), "getSpenderWhitelistMode", [spender, sponsor], chain);
|
|
84
|
+
}
|
|
85
|
+
static async getPaymasterAddress(options = globalThis.globalEnvOption) {
|
|
86
|
+
const chain = await data_1.Chain.getChain({ chainIdentifier: options.chain });
|
|
87
|
+
return await chain.getAddress(this.name);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
exports.GaslessSponsor = GaslessSponsor;
|
|
91
|
+
//# sourceMappingURL=GaslessSponsor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GaslessSponsor.js","sourceRoot":"","sources":["../../../src/sponsors/GaslessSponsor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Address } from "viem";
|
|
2
|
+
import { PaymasterType } from "./types";
|
|
3
|
+
import { TransactionParams } from "../common";
|
|
4
|
+
import { EnvOption } from "../config";
|
|
5
|
+
import { ContractInterface } from "../viem/ContractInterface";
|
|
6
|
+
export declare abstract class Sponsor {
|
|
7
|
+
sponsorAddress?: Address;
|
|
8
|
+
contractInterface: ContractInterface;
|
|
9
|
+
name: string;
|
|
10
|
+
paymasterAddress?: Address;
|
|
11
|
+
paymasterType: PaymasterType;
|
|
12
|
+
chainId?: string;
|
|
13
|
+
constructor(options: EnvOption | undefined, contractInterface: ContractInterface, name: string, paymasterType: PaymasterType);
|
|
14
|
+
getPaymasterAddress(options?: EnvOption): Promise<Address>;
|
|
15
|
+
abstract getPaymasterAndData(options: EnvOption): Promise<string>;
|
|
16
|
+
abstract stake(depositor: Address, sponsor: string, amount: number, options: EnvOption): Promise<TransactionParams>;
|
|
17
|
+
abstract unstake(sponsor: Address, receiver: string, amount: number, options: EnvOption): Promise<TransactionParams>;
|
|
18
|
+
abstract lockDeposit(): Promise<TransactionParams>;
|
|
19
|
+
abstract unlockDepositAfter(blocksToWait: number): Promise<TransactionParams>;
|
|
20
|
+
/** True if the specified sponsor is in blacklist mode. **/
|
|
21
|
+
getListMode(sponsor: string, options?: EnvOption): Promise<boolean>;
|
|
22
|
+
setToBlacklistMode(sponsor: Address, options?: EnvOption): Promise<TransactionParams>;
|
|
23
|
+
setToWhitelistMode(sponsor: Address, options?: EnvOption): Promise<TransactionParams>;
|
|
24
|
+
batchTransaction(transactions: TransactionParams[]): Promise<TransactionParams>;
|
|
25
|
+
addSpenderToWhitelist(sponsor: Address, spender: Address, options?: EnvOption): Promise<TransactionParams>;
|
|
26
|
+
removeSpenderFromWhitelist(sponsor: Address, spender: Address, options?: EnvOption): Promise<TransactionParams>;
|
|
27
|
+
batchWhitelistSpenders(sponsor: Address, spenders: Address[], modes: boolean[], options?: EnvOption): Promise<TransactionParams>;
|
|
28
|
+
addSpenderToBlacklist(sponsor: Address, spender: Address, options?: EnvOption): Promise<TransactionParams>;
|
|
29
|
+
removeSpenderFromBlacklist(sponsor: Address, spender: Address, options?: EnvOption): Promise<TransactionParams>;
|
|
30
|
+
batchBlacklistSpenders(sponsor: Address, spenders: Address[], modes: boolean[], options?: EnvOption): Promise<TransactionParams>;
|
|
31
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Sponsor = void 0;
|
|
4
|
+
const PaymasterApis_1 = require("../apis/PaymasterApis");
|
|
5
|
+
const data_1 = require("../data");
|
|
6
|
+
class Sponsor {
|
|
7
|
+
constructor(options = globalThis.globalEnvOption, contractInterface, name, paymasterType) {
|
|
8
|
+
if (options.gasSponsor !== undefined && options.gasSponsor.sponsorAddress !== undefined) {
|
|
9
|
+
this.sponsorAddress = options.gasSponsor.sponsorAddress;
|
|
10
|
+
}
|
|
11
|
+
this.contractInterface = contractInterface;
|
|
12
|
+
this.name = name;
|
|
13
|
+
this.paymasterType = paymasterType;
|
|
14
|
+
}
|
|
15
|
+
async getPaymasterAddress(options = globalThis.globalEnvOption) {
|
|
16
|
+
const chain = await data_1.Chain.getChain({ chainIdentifier: options.chain });
|
|
17
|
+
const chainId = await chain.getChainId();
|
|
18
|
+
if (!this.paymasterAddress && chainId !== this.chainId) {
|
|
19
|
+
this.paymasterAddress = await chain.getAddress(this.name);
|
|
20
|
+
this.chainId = chainId;
|
|
21
|
+
}
|
|
22
|
+
return this.paymasterAddress;
|
|
23
|
+
}
|
|
24
|
+
/** True if the specified sponsor is in blacklist mode. **/
|
|
25
|
+
async getListMode(sponsor, options = globalThis.globalEnvOption) {
|
|
26
|
+
const chain = await data_1.Chain.getChain({ chainIdentifier: options.chain });
|
|
27
|
+
return await this.contractInterface.readFromChain(await this.getPaymasterAddress(options), "getListMode", [sponsor], chain);
|
|
28
|
+
}
|
|
29
|
+
async setToBlacklistMode(sponsor, options = globalThis.globalEnvOption) {
|
|
30
|
+
const chain = await data_1.Chain.getChain({ chainIdentifier: options.chain });
|
|
31
|
+
await (0, PaymasterApis_1.updatePaymasterMode)(await chain.getChainId(), { mode: "blacklist" }, this.paymasterType, sponsor);
|
|
32
|
+
return this.contractInterface.encodeTransactionParams(await this.getPaymasterAddress(), "setListMode", [true]);
|
|
33
|
+
}
|
|
34
|
+
async setToWhitelistMode(sponsor, options = globalThis.globalEnvOption) {
|
|
35
|
+
const chain = await data_1.Chain.getChain({ chainIdentifier: options.chain });
|
|
36
|
+
await (0, PaymasterApis_1.updatePaymasterMode)(await chain.getChainId(), { mode: "whitelist" }, this.paymasterType, sponsor);
|
|
37
|
+
return this.contractInterface.encodeTransactionParams(await this.getPaymasterAddress(), "setListMode", [false]);
|
|
38
|
+
}
|
|
39
|
+
async batchTransaction(transactions) {
|
|
40
|
+
const batchActionsData = transactions.map((transaction) => (transaction.data ? transaction.data : "0x"));
|
|
41
|
+
const value = transactions.reduce((acc, transaction) => (transaction.value ? acc + BigInt(transaction.value) : acc), 0n);
|
|
42
|
+
return this.contractInterface.encodeTransactionParams(await this.getPaymasterAddress(), "batchActions", [batchActionsData], value);
|
|
43
|
+
}
|
|
44
|
+
async addSpenderToWhitelist(sponsor, spender, options = globalThis.globalEnvOption) {
|
|
45
|
+
const chain = await data_1.Chain.getChain({ chainIdentifier: options.chain });
|
|
46
|
+
await (0, PaymasterApis_1.addToList)(await chain.getChainId(), [spender], "walletsWhiteList", this.paymasterType, sponsor);
|
|
47
|
+
return this.contractInterface.encodeTransactionParams(await this.getPaymasterAddress(), "setSpenderWhitelistMode", [spender, true]);
|
|
48
|
+
}
|
|
49
|
+
async removeSpenderFromWhitelist(sponsor, spender, options = globalThis.globalEnvOption) {
|
|
50
|
+
const chain = await data_1.Chain.getChain({ chainIdentifier: options.chain });
|
|
51
|
+
await (0, PaymasterApis_1.removeFromList)(await chain.getChainId(), [spender], "walletsWhiteList", this.paymasterType, sponsor);
|
|
52
|
+
return this.contractInterface.encodeTransactionParams(await this.getPaymasterAddress(), "setSpenderWhitelistMode", [spender, false]);
|
|
53
|
+
}
|
|
54
|
+
async batchWhitelistSpenders(sponsor, spenders, modes, options = globalThis.globalEnvOption) {
|
|
55
|
+
const chain = await data_1.Chain.getChain({ chainIdentifier: options.chain });
|
|
56
|
+
const calldata = [];
|
|
57
|
+
for (let i = 0; i < spenders.length; i++) {
|
|
58
|
+
if (modes[i]) {
|
|
59
|
+
calldata.push(await this.addSpenderToWhitelist(sponsor, spenders[i], options));
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
calldata.push(await this.removeSpenderFromWhitelist(sponsor, spenders[i], options));
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
(0, PaymasterApis_1.batchOperation)(await chain.getChainId(), spenders, modes, "walletsWhiteList", this.paymasterType, sponsor);
|
|
66
|
+
return await this.batchTransaction(calldata);
|
|
67
|
+
}
|
|
68
|
+
async addSpenderToBlacklist(sponsor, spender, options = globalThis.globalEnvOption) {
|
|
69
|
+
const chain = await data_1.Chain.getChain({ chainIdentifier: options.chain });
|
|
70
|
+
await (0, PaymasterApis_1.addToList)(await chain.getChainId(), [spender], "walletsBlackList", this.paymasterType, sponsor);
|
|
71
|
+
return this.contractInterface.encodeTransactionParams(await this.getPaymasterAddress(), "setSpenderBlacklistMode", [spender, true]);
|
|
72
|
+
}
|
|
73
|
+
async removeSpenderFromBlacklist(sponsor, spender, options = globalThis.globalEnvOption) {
|
|
74
|
+
const chain = await data_1.Chain.getChain({ chainIdentifier: options.chain });
|
|
75
|
+
await (0, PaymasterApis_1.removeFromList)(await chain.getChainId(), [spender], "walletsBlackList", this.paymasterType, sponsor);
|
|
76
|
+
return this.contractInterface.encodeTransactionParams(await this.getPaymasterAddress(), "setSpenderBlacklistMode", [spender, false]);
|
|
77
|
+
}
|
|
78
|
+
async batchBlacklistSpenders(sponsor, spenders, modes, options = globalThis.globalEnvOption) {
|
|
79
|
+
const chain = await data_1.Chain.getChain({ chainIdentifier: options.chain });
|
|
80
|
+
const calldata = [];
|
|
81
|
+
for (let i = 0; i < spenders.length; i++) {
|
|
82
|
+
if (modes[i]) {
|
|
83
|
+
calldata.push(await this.addSpenderToBlacklist(sponsor, spenders[i], options));
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
calldata.push(await this.removeSpenderFromBlacklist(sponsor, spenders[i], options));
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
(0, PaymasterApis_1.batchOperation)(await chain.getChainId(), spenders, modes, "walletsBlackList", this.paymasterType, sponsor);
|
|
90
|
+
return await this.batchTransaction(calldata);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
exports.Sponsor = Sponsor;
|
|
94
|
+
//# sourceMappingURL=Sponsor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Sponsor.js","sourceRoot":"","sources":["../../../src/sponsors/Sponsor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Address } from "viem";
|
|
2
|
+
import { Sponsor } from "./Sponsor";
|
|
3
|
+
import { AllTokenData } from "./types";
|
|
4
|
+
import { Auth } from "../auth";
|
|
5
|
+
import { TransactionParams } from "../common";
|
|
6
|
+
import { EnvOption } from "../config";
|
|
7
|
+
import { Operation } from "../data";
|
|
8
|
+
export declare class TokenSponsor extends Sponsor {
|
|
9
|
+
token: string;
|
|
10
|
+
constructor(options?: EnvOption);
|
|
11
|
+
getFunSponsorAddress(options?: EnvOption): Promise<Address>;
|
|
12
|
+
getPaymasterAndData(options?: EnvOption): Promise<string>;
|
|
13
|
+
getPaymasterAndDataPermit(partialOp: Operation, walletAddr: Address, userId: string, auth: Auth, options?: EnvOption): Promise<string>;
|
|
14
|
+
stake(depositor: Address, sponsor: Address, amount: number, options?: EnvOption): Promise<TransactionParams>;
|
|
15
|
+
unstake(sponsor: Address, receiver: Address, amount: number, options?: EnvOption): Promise<TransactionParams>;
|
|
16
|
+
getUnlockBlock(sponsor: Address, token: string, options?: EnvOption): Promise<bigint>;
|
|
17
|
+
getLockState(sponsor: Address, token: string, options?: EnvOption): Promise<boolean>;
|
|
18
|
+
getTokenInfo(token: string, options?: EnvOption): Promise<any>;
|
|
19
|
+
getAllTokenData(spender: Address, token: string, options?: EnvOption): Promise<AllTokenData>;
|
|
20
|
+
getTokenBalance(spender: Address, token: string, options?: EnvOption): Promise<BigInt>;
|
|
21
|
+
getAllTokens(options?: EnvOption): Promise<any>;
|
|
22
|
+
addUsableToken(oracle: string, token: string, aggregator: string, options?: EnvOption): Promise<TransactionParams>;
|
|
23
|
+
depositToken(depositor: Address, token: string, spender: Address, amount: number, options?: EnvOption): Promise<TransactionParams>;
|
|
24
|
+
withdrawToken(withdrawer: Address, token: string, receiver: Address, amount: number, options?: EnvOption): Promise<TransactionParams>;
|
|
25
|
+
lockTokenDeposit(token: string, options?: EnvOption): Promise<TransactionParams>;
|
|
26
|
+
unlockTokenDepositAfter(token: string, blocksToWait: number, options?: EnvOption): Promise<TransactionParams>;
|
|
27
|
+
lockDeposit(): Promise<TransactionParams>;
|
|
28
|
+
unlockDepositAfter(blocksToWait: number): Promise<TransactionParams>;
|
|
29
|
+
approve(approver: Address, token: string, amount: number, options?: EnvOption): Promise<TransactionParams>;
|
|
30
|
+
getSpenderBlacklisted(spender: Address, sponsor: Address, options?: EnvOption): Promise<boolean>;
|
|
31
|
+
getSpenderWhitelisted(spender: Address, sponsor: Address, options?: EnvOption): Promise<boolean>;
|
|
32
|
+
getTokenWhitelisted(sponsor: Address, token: string, options?: EnvOption): Promise<boolean>;
|
|
33
|
+
setTokenToWhitelistMode(sponsor: Address, options?: EnvOption): Promise<TransactionParams>;
|
|
34
|
+
batchWhitelistTokens(sponsor: Address, tokens: string[], modes: boolean[], options?: EnvOption): Promise<TransactionParams>;
|
|
35
|
+
getTokenListMode(sponsor: Address, options?: EnvOption): Promise<any>;
|
|
36
|
+
getTokenBlacklisted(sponsor: Address, token: string, options?: EnvOption): Promise<boolean>;
|
|
37
|
+
setTokenToBlacklistMode(sponsor: Address, options?: EnvOption): Promise<TransactionParams>;
|
|
38
|
+
batchBlacklistTokens(sponsor: Address, tokens: string[], modes: boolean[], options?: EnvOption): Promise<TransactionParams>;
|
|
39
|
+
static getPaymasterAddress(options?: EnvOption): Promise<Address>;
|
|
40
|
+
}
|