@lit-protocol/vincent-ability-erc20-approval 2.1.0-eip-7702 → 3.1.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/CHANGELOG.md +30 -0
- package/dist/CHANGELOG.md +30 -0
- package/dist/package.json +2 -2
- package/dist/src/generated/lit-action.js +2 -2
- package/dist/src/generated/vincent-ability-metadata.json +1 -1
- package/dist/src/generated/vincent-bundled-ability.d.ts +3 -9
- package/dist/src/generated/vincent-bundled-ability.d.ts.map +1 -1
- package/dist/src/lib/helpers/get-current-allowance.d.ts +1 -1
- package/dist/src/lib/helpers/get-current-allowance.d.ts.map +1 -1
- package/dist/src/lib/helpers/get-current-allowance.js +1 -2
- package/dist/src/lib/helpers/get-current-allowance.js.map +1 -1
- package/dist/src/lib/lit-action-helpers/send-erc20-approval-tx.d.ts +2 -1
- package/dist/src/lib/lit-action-helpers/send-erc20-approval-tx.d.ts.map +1 -1
- package/dist/src/lib/lit-action-helpers/send-erc20-approval-tx.js +1 -3
- package/dist/src/lib/lit-action-helpers/send-erc20-approval-tx.js.map +1 -1
- package/dist/src/lib/schemas.d.ts +3 -9
- package/dist/src/lib/schemas.d.ts.map +1 -1
- package/dist/src/lib/schemas.js +3 -12
- package/dist/src/lib/schemas.js.map +1 -1
- package/dist/src/lib/vincent-ability.d.ts +3 -9
- package/dist/src/lib/vincent-ability.d.ts.map +1 -1
- package/dist/src/lib/vincent-ability.js +23 -34
- package/dist/src/lib/vincent-ability.js.map +1 -1
- package/package.json +4 -4
|
@@ -6,8 +6,7 @@ export declare const bundledVincentAbility: import("@lit-protocol/vincent-abilit
|
|
|
6
6
|
chainId: import("zod").ZodNumber;
|
|
7
7
|
spenderAddress: import("zod").ZodString;
|
|
8
8
|
tokenAddress: import("zod").ZodString;
|
|
9
|
-
|
|
10
|
-
tokenAmount: import("zod").ZodNumber;
|
|
9
|
+
tokenAmount: import("zod").ZodString;
|
|
11
10
|
alchemyGasSponsor: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodBoolean>>;
|
|
12
11
|
alchemyGasSponsorApiKey: import("zod").ZodOptional<import("zod").ZodString>;
|
|
13
12
|
alchemyGasSponsorPolicyId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
@@ -16,9 +15,8 @@ export declare const bundledVincentAbility: import("@lit-protocol/vincent-abilit
|
|
|
16
15
|
rpcUrl: string;
|
|
17
16
|
chainId: number;
|
|
18
17
|
spenderAddress: string;
|
|
19
|
-
tokenAmount:
|
|
18
|
+
tokenAmount: string;
|
|
20
19
|
alchemyGasSponsor: boolean;
|
|
21
|
-
tokenDecimals: number;
|
|
22
20
|
alchemyGasSponsorApiKey?: string | undefined;
|
|
23
21
|
alchemyGasSponsorPolicyId?: string | undefined;
|
|
24
22
|
}, {
|
|
@@ -26,8 +24,7 @@ export declare const bundledVincentAbility: import("@lit-protocol/vincent-abilit
|
|
|
26
24
|
rpcUrl: string;
|
|
27
25
|
chainId: number;
|
|
28
26
|
spenderAddress: string;
|
|
29
|
-
tokenAmount:
|
|
30
|
-
tokenDecimals: number;
|
|
27
|
+
tokenAmount: string;
|
|
31
28
|
alchemyGasSponsor?: boolean | undefined;
|
|
32
29
|
alchemyGasSponsorApiKey?: string | undefined;
|
|
33
30
|
alchemyGasSponsorPolicyId?: string | undefined;
|
|
@@ -35,18 +32,15 @@ export declare const bundledVincentAbility: import("@lit-protocol/vincent-abilit
|
|
|
35
32
|
approvalTxHash: import("zod").ZodOptional<import("zod").ZodString>;
|
|
36
33
|
approvedAmount: import("zod").ZodString;
|
|
37
34
|
tokenAddress: import("zod").ZodString;
|
|
38
|
-
tokenDecimals: import("zod").ZodNumber;
|
|
39
35
|
spenderAddress: import("zod").ZodString;
|
|
40
36
|
}, "strip", import("zod").ZodTypeAny, {
|
|
41
37
|
tokenAddress: string;
|
|
42
38
|
spenderAddress: string;
|
|
43
|
-
tokenDecimals: number;
|
|
44
39
|
approvedAmount: string;
|
|
45
40
|
approvalTxHash?: string | undefined;
|
|
46
41
|
}, {
|
|
47
42
|
tokenAddress: string;
|
|
48
43
|
spenderAddress: string;
|
|
49
|
-
tokenDecimals: number;
|
|
50
44
|
approvedAmount: string;
|
|
51
45
|
approvalTxHash?: string | undefined;
|
|
52
46
|
}>, import("zod").ZodObject<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vincent-bundled-ability.d.ts","sourceRoot":"","sources":["../../../src/generated/vincent-bundled-ability.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,eAAO,MAAM,qBAAqB
|
|
1
|
+
{"version":3,"file":"vincent-bundled-ability.d.ts","sourceRoot":"","sources":["../../../src/generated/vincent-bundled-ability.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAA4D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-current-allowance.d.ts","sourceRoot":"","sources":["../../../../src/lib/helpers/get-current-allowance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"get-current-allowance.d.ts","sourceRoot":"","sources":["../../../../src/lib/helpers/get-current-allowance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,eAAO,MAAM,mBAAmB,GAAU,6CAKvC;IACD,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,KAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAG3B,CAAC"}
|
|
@@ -4,8 +4,7 @@ exports.getCurrentAllowance = void 0;
|
|
|
4
4
|
const getErc20Contract_1 = require("../helpers/getErc20Contract");
|
|
5
5
|
const getCurrentAllowance = async ({ provider, tokenAddress, owner, spender, }) => {
|
|
6
6
|
const contract = (0, getErc20Contract_1.getErc20Contract)(tokenAddress, provider);
|
|
7
|
-
|
|
8
|
-
return allowance.toBigInt();
|
|
7
|
+
return await contract.allowance(owner, spender);
|
|
9
8
|
};
|
|
10
9
|
exports.getCurrentAllowance = getCurrentAllowance;
|
|
11
10
|
//# sourceMappingURL=get-current-allowance.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-current-allowance.js","sourceRoot":"","sources":["../../../../src/lib/helpers/get-current-allowance.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"get-current-allowance.js","sourceRoot":"","sources":["../../../../src/lib/helpers/get-current-allowance.ts"],"names":[],"mappings":";;;AAEA,kEAA+D;AAExD,MAAM,mBAAmB,GAAG,KAAK,EAAE,EACxC,QAAQ,EACR,YAAY,EACZ,KAAK,EACL,OAAO,GAMR,EAA6B,EAAE;IAC9B,MAAM,QAAQ,GAAG,IAAA,mCAAgB,EAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC1D,OAAO,MAAM,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC,CAAC;AAbW,QAAA,mBAAmB,uBAa9B"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import { ethers } from 'ethers';
|
|
1
2
|
export declare const sendErc20ApprovalTx: ({ rpcUrl, chainId, pkpEthAddress, pkpPublicKey, spenderAddress, tokenAmount, tokenAddress, alchemyGasSponsor, alchemyGasSponsorApiKey, alchemyGasSponsorPolicyId, }: {
|
|
2
3
|
rpcUrl: string;
|
|
3
4
|
chainId: number;
|
|
4
5
|
pkpEthAddress: string;
|
|
5
6
|
pkpPublicKey: string;
|
|
6
7
|
spenderAddress: string;
|
|
7
|
-
tokenAmount:
|
|
8
|
+
tokenAmount: ethers.BigNumber;
|
|
8
9
|
tokenAddress: string;
|
|
9
10
|
alchemyGasSponsor: boolean;
|
|
10
11
|
alchemyGasSponsorApiKey?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send-erc20-approval-tx.d.ts","sourceRoot":"","sources":["../../../../src/lib/lit-action-helpers/send-erc20-approval-tx.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"send-erc20-approval-tx.d.ts","sourceRoot":"","sources":["../../../../src/lib/lit-action-helpers/send-erc20-approval-tx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,eAAO,MAAM,mBAAmB,GAAU,qKAWvC;IACD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,yBAAyB,CAAC,EAAE,MAAM,CAAC;CACpC,oBA6CA,CAAC"}
|
|
@@ -16,10 +16,8 @@ const sendErc20ApprovalTx = async ({ rpcUrl, chainId, pkpEthAddress, pkpPublicKe
|
|
|
16
16
|
alchemyGasSponsor,
|
|
17
17
|
});
|
|
18
18
|
const provider = new ethers_1.ethers.providers.JsonRpcProvider(rpcUrl);
|
|
19
|
-
// Convert bigint to ethers.BigNumber for proper encoding
|
|
20
|
-
const tokenAmountBN = ethers_1.ethers.BigNumber.from(tokenAmount.toString());
|
|
21
19
|
const functionName = 'approve';
|
|
22
|
-
const args = [spenderAddress,
|
|
20
|
+
const args = [spenderAddress, tokenAmount];
|
|
23
21
|
if (alchemyGasSponsor) {
|
|
24
22
|
console.log('Alchemy gas sponsor is enabled');
|
|
25
23
|
if (!alchemyGasSponsorApiKey || !alchemyGasSponsorPolicyId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send-erc20-approval-tx.js","sourceRoot":"","sources":["../../../../src/lib/lit-action-helpers/send-erc20-approval-tx.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAChC,wCAAuC;AACvC,6EAA6D;AAEtD,MAAM,mBAAmB,GAAG,KAAK,EAAE,EACxC,MAAM,EACN,OAAO,EACP,aAAa,EACb,YAAY,EACZ,cAAc,EACd,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,uBAAuB,EACvB,yBAAyB,GAY1B,EAAE,EAAE;IACH,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE;QACjC,MAAM;QACN,OAAO;QACP,aAAa;QACb,YAAY;QACZ,cAAc;QACd,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE;QACnC,YAAY;QACZ,iBAAiB;KAClB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,IAAI,eAAM,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"send-erc20-approval-tx.js","sourceRoot":"","sources":["../../../../src/lib/lit-action-helpers/send-erc20-approval-tx.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAChC,wCAAuC;AACvC,6EAA6D;AAEtD,MAAM,mBAAmB,GAAG,KAAK,EAAE,EACxC,MAAM,EACN,OAAO,EACP,aAAa,EACb,YAAY,EACZ,cAAc,EACd,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,uBAAuB,EACvB,yBAAyB,GAY1B,EAAE,EAAE;IACH,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE;QACjC,MAAM;QACN,OAAO;QACP,aAAa;QACb,YAAY;QACZ,cAAc;QACd,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE;QACnC,YAAY;QACZ,iBAAiB;KAClB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,IAAI,eAAM,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAE9D,MAAM,YAAY,GAAG,SAAS,CAAC;IAC/B,MAAM,IAAI,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IAE3C,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAE9C,IAAI,CAAC,uBAAuB,IAAI,CAAC,yBAAyB,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;QAC/F,CAAC;QACD,OAAO,MAAM,8BAAO,CAAC,WAAW,CAAC,OAAO,CAAC,wBAAwB,CAAC;YAChE,YAAY;YACZ,GAAG,EAAE,mBAAS;YACd,eAAe,EAAE,YAAY;YAC7B,YAAY;YACZ,IAAI;YACJ,OAAO;YACP,oBAAoB,EAAE,uBAAuB;YAC7C,sBAAsB,EAAE,yBAAyB;SAClD,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,OAAO,MAAM,8BAAO,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC;YACpD,QAAQ;YACR,YAAY;YACZ,aAAa,EAAE,aAAa;YAC5B,GAAG,EAAE,mBAAS;YACd,eAAe,EAAE,YAAY;YAC7B,YAAY;YACZ,IAAI;YACJ,OAAO;SACR,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC;AAnEW,QAAA,mBAAmB,uBAmE9B"}
|
|
@@ -4,8 +4,7 @@ export declare const abilityParamsSchema: z.ZodObject<{
|
|
|
4
4
|
chainId: z.ZodNumber;
|
|
5
5
|
spenderAddress: z.ZodString;
|
|
6
6
|
tokenAddress: z.ZodString;
|
|
7
|
-
|
|
8
|
-
tokenAmount: z.ZodNumber;
|
|
7
|
+
tokenAmount: z.ZodString;
|
|
9
8
|
alchemyGasSponsor: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
10
9
|
alchemyGasSponsorApiKey: z.ZodOptional<z.ZodString>;
|
|
11
10
|
alchemyGasSponsorPolicyId: z.ZodOptional<z.ZodString>;
|
|
@@ -14,9 +13,8 @@ export declare const abilityParamsSchema: z.ZodObject<{
|
|
|
14
13
|
rpcUrl: string;
|
|
15
14
|
chainId: number;
|
|
16
15
|
spenderAddress: string;
|
|
17
|
-
tokenAmount:
|
|
16
|
+
tokenAmount: string;
|
|
18
17
|
alchemyGasSponsor: boolean;
|
|
19
|
-
tokenDecimals: number;
|
|
20
18
|
alchemyGasSponsorApiKey?: string | undefined;
|
|
21
19
|
alchemyGasSponsorPolicyId?: string | undefined;
|
|
22
20
|
}, {
|
|
@@ -24,8 +22,7 @@ export declare const abilityParamsSchema: z.ZodObject<{
|
|
|
24
22
|
rpcUrl: string;
|
|
25
23
|
chainId: number;
|
|
26
24
|
spenderAddress: string;
|
|
27
|
-
tokenAmount:
|
|
28
|
-
tokenDecimals: number;
|
|
25
|
+
tokenAmount: string;
|
|
29
26
|
alchemyGasSponsor?: boolean | undefined;
|
|
30
27
|
alchemyGasSponsorApiKey?: string | undefined;
|
|
31
28
|
alchemyGasSponsorPolicyId?: string | undefined;
|
|
@@ -51,18 +48,15 @@ export declare const executeSuccessSchema: z.ZodObject<{
|
|
|
51
48
|
approvalTxHash: z.ZodOptional<z.ZodString>;
|
|
52
49
|
approvedAmount: z.ZodString;
|
|
53
50
|
tokenAddress: z.ZodString;
|
|
54
|
-
tokenDecimals: z.ZodNumber;
|
|
55
51
|
spenderAddress: z.ZodString;
|
|
56
52
|
}, "strip", z.ZodTypeAny, {
|
|
57
53
|
tokenAddress: string;
|
|
58
54
|
spenderAddress: string;
|
|
59
|
-
tokenDecimals: number;
|
|
60
55
|
approvedAmount: string;
|
|
61
56
|
approvalTxHash?: string | undefined;
|
|
62
57
|
}, {
|
|
63
58
|
tokenAddress: string;
|
|
64
59
|
spenderAddress: string;
|
|
65
|
-
tokenDecimals: number;
|
|
66
60
|
approvedAmount: string;
|
|
67
61
|
approvalTxHash?: string | undefined;
|
|
68
62
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/lib/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/lib/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoC9B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;EAShC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;EAI7B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;EAY/B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;EAE5B,CAAC"}
|
package/dist/src/lib/schemas.js
CHANGED
|
@@ -15,13 +15,10 @@ exports.abilityParamsSchema = zod_1.z.object({
|
|
|
15
15
|
tokenAddress: zod_1.z
|
|
16
16
|
.string()
|
|
17
17
|
.describe('ERC20 Token address to approve. For example 0x4200000000000000000000000000000000000006 for WETH on Base.'),
|
|
18
|
-
tokenDecimals: zod_1.z
|
|
19
|
-
.number()
|
|
20
|
-
.describe('ERC20 Token to approve decimals. For example 18 for WETH on Base.'),
|
|
21
18
|
tokenAmount: zod_1.z
|
|
22
|
-
.
|
|
23
|
-
.
|
|
24
|
-
.describe('
|
|
19
|
+
.string()
|
|
20
|
+
.regex(/^\d+$/, 'Invalid amount format')
|
|
21
|
+
.describe('The amount of tokens to approve/deposit/redeem, as a string without decimal point. Ex: 2123456 for 2.123456 USDC (6 decimals)'),
|
|
25
22
|
alchemyGasSponsor: zod_1.z
|
|
26
23
|
.boolean()
|
|
27
24
|
.optional()
|
|
@@ -50,20 +47,14 @@ exports.precheckFailSchema = zod_1.z.object({
|
|
|
50
47
|
.describe('Boolean indicating if the user has enough native token to pay for gas fees.'),
|
|
51
48
|
});
|
|
52
49
|
exports.executeSuccessSchema = zod_1.z.object({
|
|
53
|
-
// Transaction hash if a new approval was created, undefined if existing approval was used
|
|
54
50
|
approvalTxHash: zod_1.z
|
|
55
51
|
.string()
|
|
56
52
|
.optional()
|
|
57
53
|
.describe('Transaction hash if a new approval was created, undefined if existing approval was used'),
|
|
58
|
-
// The approved amount that is now active (either from existing or new approval)
|
|
59
54
|
approvedAmount: zod_1.z
|
|
60
55
|
.string()
|
|
61
56
|
.describe('The approved amount that is now active (either from existing or new approval)'),
|
|
62
|
-
// The token address that was approved
|
|
63
57
|
tokenAddress: zod_1.z.string().describe('The token address that was approved'),
|
|
64
|
-
// The token decimals that was approved
|
|
65
|
-
tokenDecimals: zod_1.z.number().describe('The token decimals that was approved'),
|
|
66
|
-
// The spender address that was approved
|
|
67
58
|
spenderAddress: zod_1.z.string().describe('The spender address that was approved'),
|
|
68
59
|
});
|
|
69
60
|
exports.executeFailSchema = zod_1.z.object({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/lib/schemas.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,mBAAmB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1C,MAAM,EAAE,OAAC;SACN,MAAM,EAAE;SACR,QAAQ,CAAC,6EAA6E,CAAC,EAAE,yDAAyD;IACrJ,OAAO,EAAE,OAAC;SACP,MAAM,EAAE;SACR,QAAQ,CAAC,yEAAyE,CAAC;IACtF,cAAc,EAAE,OAAC;SACd,MAAM,EAAE;SACR,QAAQ,CACP,yIAAyI,CAC1I;
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/lib/schemas.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,mBAAmB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1C,MAAM,EAAE,OAAC;SACN,MAAM,EAAE;SACR,QAAQ,CAAC,6EAA6E,CAAC,EAAE,yDAAyD;IACrJ,OAAO,EAAE,OAAC;SACP,MAAM,EAAE;SACR,QAAQ,CAAC,yEAAyE,CAAC;IACtF,cAAc,EAAE,OAAC;SACd,MAAM,EAAE;SACR,QAAQ,CACP,yIAAyI,CAC1I;IACH,YAAY,EAAE,OAAC;SACZ,MAAM,EAAE;SACR,QAAQ,CACP,0GAA0G,CAC3G;IACH,WAAW,EAAE,OAAC;SACX,MAAM,EAAE;SACR,KAAK,CAAC,OAAO,EAAE,uBAAuB,CAAC;SACvC,QAAQ,CACP,+HAA+H,CAChI;IACH,iBAAiB,EAAE,OAAC;SACjB,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,6DAA6D,CAAC;IAC1E,uBAAuB,EAAE,OAAC;SACvB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,0CAA0C,CAAC;IACvD,yBAAyB,EAAE,OAAC;SACzB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,4CAA4C,CAAC;CAC1D,CAAC,CAAC;AAEU,QAAA,qBAAqB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC5C,eAAe,EAAE,OAAC;SACf,OAAO,EAAE;SACT,QAAQ,CAAC,qEAAqE,CAAC;IAClF,gBAAgB,EAAE,OAAC;SAChB,MAAM,EAAE;SACR,QAAQ,CACP,8FAA8F,CAC/F;CACJ,CAAC,CAAC;AAEU,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,oBAAoB,EAAE,OAAC;SACpB,OAAO,EAAE;SACT,QAAQ,CAAC,6EAA6E,CAAC;CAC3F,CAAC,CAAC;AAEU,QAAA,oBAAoB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3C,cAAc,EAAE,OAAC;SACd,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,yFAAyF,CAC1F;IACH,cAAc,EAAE,OAAC;SACd,MAAM,EAAE;SACR,QAAQ,CAAC,+EAA+E,CAAC;IAC5F,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IACxE,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;CAC7E,CAAC,CAAC;AAEU,QAAA,iBAAiB,GAAG,OAAC,CAAC,MAAM,CAAC;IACxC,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gEAAgE,CAAC;CAC7F,CAAC,CAAC"}
|
|
@@ -3,8 +3,7 @@ export declare const vincentAbility: import("@lit-protocol/vincent-ability-sdk")
|
|
|
3
3
|
chainId: import("zod").ZodNumber;
|
|
4
4
|
spenderAddress: import("zod").ZodString;
|
|
5
5
|
tokenAddress: import("zod").ZodString;
|
|
6
|
-
|
|
7
|
-
tokenAmount: import("zod").ZodNumber;
|
|
6
|
+
tokenAmount: import("zod").ZodString;
|
|
8
7
|
alchemyGasSponsor: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodBoolean>>;
|
|
9
8
|
alchemyGasSponsorApiKey: import("zod").ZodOptional<import("zod").ZodString>;
|
|
10
9
|
alchemyGasSponsorPolicyId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
@@ -13,9 +12,8 @@ export declare const vincentAbility: import("@lit-protocol/vincent-ability-sdk")
|
|
|
13
12
|
rpcUrl: string;
|
|
14
13
|
chainId: number;
|
|
15
14
|
spenderAddress: string;
|
|
16
|
-
tokenAmount:
|
|
15
|
+
tokenAmount: string;
|
|
17
16
|
alchemyGasSponsor: boolean;
|
|
18
|
-
tokenDecimals: number;
|
|
19
17
|
alchemyGasSponsorApiKey?: string | undefined;
|
|
20
18
|
alchemyGasSponsorPolicyId?: string | undefined;
|
|
21
19
|
}, {
|
|
@@ -23,8 +21,7 @@ export declare const vincentAbility: import("@lit-protocol/vincent-ability-sdk")
|
|
|
23
21
|
rpcUrl: string;
|
|
24
22
|
chainId: number;
|
|
25
23
|
spenderAddress: string;
|
|
26
|
-
tokenAmount:
|
|
27
|
-
tokenDecimals: number;
|
|
24
|
+
tokenAmount: string;
|
|
28
25
|
alchemyGasSponsor?: boolean | undefined;
|
|
29
26
|
alchemyGasSponsorApiKey?: string | undefined;
|
|
30
27
|
alchemyGasSponsorPolicyId?: string | undefined;
|
|
@@ -32,18 +29,15 @@ export declare const vincentAbility: import("@lit-protocol/vincent-ability-sdk")
|
|
|
32
29
|
approvalTxHash: import("zod").ZodOptional<import("zod").ZodString>;
|
|
33
30
|
approvedAmount: import("zod").ZodString;
|
|
34
31
|
tokenAddress: import("zod").ZodString;
|
|
35
|
-
tokenDecimals: import("zod").ZodNumber;
|
|
36
32
|
spenderAddress: import("zod").ZodString;
|
|
37
33
|
}, "strip", import("zod").ZodTypeAny, {
|
|
38
34
|
tokenAddress: string;
|
|
39
35
|
spenderAddress: string;
|
|
40
|
-
tokenDecimals: number;
|
|
41
36
|
approvedAmount: string;
|
|
42
37
|
approvalTxHash?: string | undefined;
|
|
43
38
|
}, {
|
|
44
39
|
tokenAddress: string;
|
|
45
40
|
spenderAddress: string;
|
|
46
|
-
tokenDecimals: number;
|
|
47
41
|
approvedAmount: string;
|
|
48
42
|
approvalTxHash?: string | undefined;
|
|
49
43
|
}>, import("zod").ZodObject<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vincent-ability.d.ts","sourceRoot":"","sources":["../../../src/lib/vincent-ability.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,cAAc
|
|
1
|
+
{"version":3,"file":"vincent-ability.d.ts","sourceRoot":"","sources":["../../../src/lib/vincent-ability.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkHzB,CAAC"}
|
|
@@ -17,14 +17,16 @@ exports.vincentAbility = (0, vincent_ability_sdk_1.createVincentAbility)({
|
|
|
17
17
|
executeFailSchema: schemas_1.executeFailSchema,
|
|
18
18
|
precheck: async ({ abilityParams }, { succeed, fail, delegation: { delegatorPkpInfo } }) => {
|
|
19
19
|
const { ethAddress } = delegatorPkpInfo;
|
|
20
|
-
const { rpcUrl, spenderAddress, tokenAddress,
|
|
20
|
+
const { alchemyGasSponsor, rpcUrl, spenderAddress, tokenAddress, tokenAmount } = abilityParams;
|
|
21
21
|
const provider = new ethers_1.ethers.providers.JsonRpcProvider(rpcUrl);
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
22
|
+
if (!alchemyGasSponsor) {
|
|
23
|
+
const hasNativeTokenBalance = await (0, helpers_1.checkNativeTokenBalance)({
|
|
24
|
+
provider,
|
|
25
|
+
pkpEthAddress: ethAddress,
|
|
26
|
+
});
|
|
27
|
+
if (!hasNativeTokenBalance) {
|
|
28
|
+
return fail({ noNativeTokenBalance: true });
|
|
29
|
+
}
|
|
28
30
|
}
|
|
29
31
|
const currentAllowance = await (0, helpers_1.getCurrentAllowance)({
|
|
30
32
|
provider,
|
|
@@ -32,16 +34,16 @@ exports.vincentAbility = (0, vincent_ability_sdk_1.createVincentAbility)({
|
|
|
32
34
|
owner: ethAddress,
|
|
33
35
|
spender: spenderAddress,
|
|
34
36
|
});
|
|
35
|
-
const requiredAmount = ethers_1.ethers.
|
|
37
|
+
const requiredAmount = ethers_1.ethers.BigNumber.from(tokenAmount);
|
|
36
38
|
return succeed({
|
|
37
|
-
alreadyApproved: currentAllowance
|
|
39
|
+
alreadyApproved: currentAllowance.eq(requiredAmount),
|
|
38
40
|
currentAllowance: currentAllowance.toString(),
|
|
39
41
|
});
|
|
40
42
|
},
|
|
41
43
|
execute: async ({ abilityParams }, { succeed, delegation: { delegatorPkpInfo } }) => {
|
|
42
44
|
console.log('Executing ERC20 Approval Ability');
|
|
43
45
|
const { ethAddress, publicKey } = delegatorPkpInfo;
|
|
44
|
-
const { rpcUrl, chainId, spenderAddress, tokenAddress,
|
|
46
|
+
const { rpcUrl, chainId, spenderAddress, tokenAddress, tokenAmount, alchemyGasSponsor, alchemyGasSponsorApiKey, alchemyGasSponsorPolicyId, } = abilityParams;
|
|
45
47
|
const provider = new ethers_1.ethers.providers.JsonRpcProvider(rpcUrl);
|
|
46
48
|
await (0, helpers_1.checkNativeTokenBalance)({
|
|
47
49
|
provider,
|
|
@@ -53,23 +55,16 @@ exports.vincentAbility = (0, vincent_ability_sdk_1.createVincentAbility)({
|
|
|
53
55
|
owner: ethAddress,
|
|
54
56
|
spender: spenderAddress,
|
|
55
57
|
});
|
|
56
|
-
const requiredAmount = ethers_1.ethers.
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
if (currentAllowance === requiredAmount) {
|
|
61
|
-
console.log('Ability execution successful', {
|
|
58
|
+
const requiredAmount = ethers_1.ethers.BigNumber.from(tokenAmount);
|
|
59
|
+
console.log(`Execute: currentAllowance: ${currentAllowance.toString()} - requiredAmount: ${requiredAmount.toString()}`);
|
|
60
|
+
if (currentAllowance.eq(requiredAmount)) {
|
|
61
|
+
const result = {
|
|
62
62
|
approvedAmount: currentAllowance.toString(),
|
|
63
63
|
spenderAddress,
|
|
64
64
|
tokenAddress,
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
return succeed(
|
|
68
|
-
approvedAmount: currentAllowance.toString(),
|
|
69
|
-
tokenAddress,
|
|
70
|
-
tokenDecimals: parseInt(tokenDecimals.toString()),
|
|
71
|
-
spenderAddress,
|
|
72
|
-
});
|
|
65
|
+
};
|
|
66
|
+
console.log('Ability execution successful', result);
|
|
67
|
+
return succeed(result);
|
|
73
68
|
}
|
|
74
69
|
const approvalTxHash = await (0, lit_action_helpers_1.sendErc20ApprovalTx)({
|
|
75
70
|
rpcUrl,
|
|
@@ -83,20 +78,14 @@ exports.vincentAbility = (0, vincent_ability_sdk_1.createVincentAbility)({
|
|
|
83
78
|
alchemyGasSponsorApiKey,
|
|
84
79
|
alchemyGasSponsorPolicyId,
|
|
85
80
|
});
|
|
86
|
-
|
|
81
|
+
const result = {
|
|
87
82
|
approvalTxHash,
|
|
88
83
|
approvedAmount: requiredAmount.toString(),
|
|
89
84
|
spenderAddress,
|
|
90
85
|
tokenAddress,
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
return succeed(
|
|
94
|
-
approvalTxHash,
|
|
95
|
-
approvedAmount: requiredAmount.toString(),
|
|
96
|
-
tokenAddress,
|
|
97
|
-
tokenDecimals: parseInt(tokenDecimals.toString()),
|
|
98
|
-
spenderAddress,
|
|
99
|
-
});
|
|
86
|
+
};
|
|
87
|
+
console.log('Ability execution successful', result);
|
|
88
|
+
return succeed(result);
|
|
100
89
|
},
|
|
101
90
|
});
|
|
102
91
|
//# sourceMappingURL=vincent-ability.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vincent-ability.js","sourceRoot":"","sources":["../../../src/lib/vincent-ability.ts"],"names":[],"mappings":";;;AAAA,2EAG2C;AAC3C,mCAAgC;AAEhC,uCAAyE;AACzE,6DAA2D;AAC3D,uCAMmB;AAEN,QAAA,cAAc,GAAG,IAAA,0CAAoB,EAAC;IACjD,WAAW,EAAE,8CAAuD;IACpE,kBAAkB,EAChB,sEAA+E;IACjF,mBAAmB,EAAnB,6BAAmB;IACnB,iBAAiB,EAAE,IAAA,iDAA2B,EAAC,EAAE,CAAC;IAElD,qBAAqB,EAArB,+BAAqB;IACrB,kBAAkB,EAAlB,4BAAkB;IAElB,oBAAoB,EAApB,8BAAoB;IACpB,iBAAiB,EAAjB,2BAAiB;IAEjB,QAAQ,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,EAAE;QACzF,MAAM,EAAE,UAAU,EAAE,GAAG,gBAAgB,CAAC;QACxC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"vincent-ability.js","sourceRoot":"","sources":["../../../src/lib/vincent-ability.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lit-protocol/vincent-ability-erc20-approval",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.1.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -9,14 +9,14 @@
|
|
|
9
9
|
"ethers": "^5.8.0",
|
|
10
10
|
"tslib": "2.8.1",
|
|
11
11
|
"zod": "^3.25.64",
|
|
12
|
-
"@lit-protocol/vincent-ability-sdk": "2.
|
|
12
|
+
"@lit-protocol/vincent-ability-sdk": "2.1.0"
|
|
13
13
|
},
|
|
14
14
|
"peerDependencies": {
|
|
15
|
-
"@lit-protocol/vincent-app-sdk": "^2.
|
|
15
|
+
"@lit-protocol/vincent-app-sdk": "^2.1.0"
|
|
16
16
|
},
|
|
17
17
|
"devDependencies": {
|
|
18
18
|
"esbuild": "^0.19.12",
|
|
19
|
-
"esbuild-plugin-polyfill-node": "^0.3.0",
|
|
19
|
+
"@lit-protocol/esbuild-plugin-polyfill-node": "^0.3.0",
|
|
20
20
|
"ipfs-only-hash": "^4.0.0"
|
|
21
21
|
},
|
|
22
22
|
"main": "./dist/src/index.js",
|