@lit-protocol/vincent-ability-uniswap-swap 6.0.0 → 8.0.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 +25 -0
- package/dist/CHANGELOG.md +30 -0
- package/dist/package.json +1 -1
- 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 +18 -12
- package/dist/src/generated/vincent-bundled-ability.d.ts.map +1 -1
- package/dist/src/generated/vincent-prepare-metadata.json +3 -3
- package/dist/src/lib/schemas.d.ts +18 -12
- package/dist/src/lib/schemas.d.ts.map +1 -1
- package/dist/src/lib/schemas.js +22 -5
- package/dist/src/lib/schemas.js.map +1 -1
- package/dist/src/lib/vincent-ability.d.ts +18 -12
- package/dist/src/lib/vincent-ability.d.ts.map +1 -1
- package/dist/src/lib/vincent-ability.js +68 -44
- package/dist/src/lib/vincent-ability.js.map +1 -1
- package/package.json +4 -4
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* DO NOT EDIT THIS FILE. IT IS GENERATED ON BUILD.
|
|
3
3
|
*/
|
|
4
4
|
export declare const bundledVincentAbility: import("@lit-protocol/vincent-ability-sdk").BundledVincentAbility<import("@lit-protocol/vincent-ability-sdk").VincentAbility<import("zod").ZodObject<{
|
|
5
|
-
action: import("zod").ZodEnum<["approve", "swap"
|
|
5
|
+
action: import("zod").ZodEnum<["approve", "swap"]>;
|
|
6
6
|
rpcUrlForUniswap: import("zod").ZodString;
|
|
7
7
|
signedUniswapQuote: import("zod").ZodObject<{
|
|
8
8
|
quote: import("zod").ZodObject<{
|
|
@@ -96,7 +96,7 @@ export declare const bundledVincentAbility: import("@lit-protocol/vincent-abilit
|
|
|
96
96
|
alchemyGasSponsorPolicyId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
97
97
|
}, "strip", import("zod").ZodTypeAny, {
|
|
98
98
|
alchemyGasSponsor: boolean;
|
|
99
|
-
action: "swap" | "approve"
|
|
99
|
+
action: "swap" | "approve";
|
|
100
100
|
rpcUrlForUniswap: string;
|
|
101
101
|
signedUniswapQuote: {
|
|
102
102
|
quote: {
|
|
@@ -122,7 +122,7 @@ export declare const bundledVincentAbility: import("@lit-protocol/vincent-abilit
|
|
|
122
122
|
alchemyGasSponsorApiKey?: string | undefined;
|
|
123
123
|
alchemyGasSponsorPolicyId?: string | undefined;
|
|
124
124
|
}, {
|
|
125
|
-
action: "swap" | "approve"
|
|
125
|
+
action: "swap" | "approve";
|
|
126
126
|
rpcUrlForUniswap: string;
|
|
127
127
|
signedUniswapQuote: {
|
|
128
128
|
quote: {
|
|
@@ -154,13 +154,16 @@ export declare const bundledVincentAbility: import("@lit-protocol/vincent-abilit
|
|
|
154
154
|
approvalTxHash: import("zod").ZodOptional<import("zod").ZodString>;
|
|
155
155
|
approvalTxUserOperationHash: import("zod").ZodOptional<import("zod").ZodString>;
|
|
156
156
|
currentAllowance: import("zod").ZodOptional<import("zod").ZodString>;
|
|
157
|
+
requiredAllowance: import("zod").ZodOptional<import("zod").ZodString>;
|
|
157
158
|
}, "strip", import("zod").ZodTypeAny, {
|
|
159
|
+
requiredAllowance?: string | undefined;
|
|
158
160
|
currentAllowance?: string | undefined;
|
|
159
161
|
swapTxHash?: string | undefined;
|
|
160
162
|
swapTxUserOperationHash?: string | undefined;
|
|
161
163
|
approvalTxHash?: string | undefined;
|
|
162
164
|
approvalTxUserOperationHash?: string | undefined;
|
|
163
165
|
}, {
|
|
166
|
+
requiredAllowance?: string | undefined;
|
|
164
167
|
currentAllowance?: string | undefined;
|
|
165
168
|
swapTxHash?: string | undefined;
|
|
166
169
|
swapTxUserOperationHash?: string | undefined;
|
|
@@ -173,23 +176,26 @@ export declare const bundledVincentAbility: import("@lit-protocol/vincent-abilit
|
|
|
173
176
|
}, {
|
|
174
177
|
reason?: string | undefined;
|
|
175
178
|
}>, import("zod").ZodObject<{
|
|
176
|
-
nativeTokenBalance: import("zod").ZodString
|
|
177
|
-
tokenInAddress: import("zod").ZodString
|
|
178
|
-
tokenInBalance: import("zod").ZodString
|
|
179
|
+
nativeTokenBalance: import("zod").ZodOptional<import("zod").ZodString>;
|
|
180
|
+
tokenInAddress: import("zod").ZodOptional<import("zod").ZodString>;
|
|
181
|
+
tokenInBalance: import("zod").ZodOptional<import("zod").ZodString>;
|
|
179
182
|
currentTokenInAllowanceForSpender: import("zod").ZodString;
|
|
180
183
|
spenderAddress: import("zod").ZodString;
|
|
184
|
+
requiredTokenInAllowance: import("zod").ZodOptional<import("zod").ZodString>;
|
|
181
185
|
}, "strip", import("zod").ZodTypeAny, {
|
|
182
|
-
tokenInAddress: string;
|
|
183
186
|
spenderAddress: string;
|
|
184
|
-
nativeTokenBalance: string;
|
|
185
|
-
tokenInBalance: string;
|
|
186
187
|
currentTokenInAllowanceForSpender: string;
|
|
188
|
+
tokenInAddress?: string | undefined;
|
|
189
|
+
nativeTokenBalance?: string | undefined;
|
|
190
|
+
tokenInBalance?: string | undefined;
|
|
191
|
+
requiredTokenInAllowance?: string | undefined;
|
|
187
192
|
}, {
|
|
188
|
-
tokenInAddress: string;
|
|
189
193
|
spenderAddress: string;
|
|
190
|
-
nativeTokenBalance: string;
|
|
191
|
-
tokenInBalance: string;
|
|
192
194
|
currentTokenInAllowanceForSpender: string;
|
|
195
|
+
tokenInAddress?: string | undefined;
|
|
196
|
+
nativeTokenBalance?: string | undefined;
|
|
197
|
+
tokenInBalance?: string | undefined;
|
|
198
|
+
requiredTokenInAllowance?: string | undefined;
|
|
193
199
|
}>, import("zod").ZodObject<{
|
|
194
200
|
reason: import("zod").ZodString;
|
|
195
201
|
spenderAddress: import("zod").ZodOptional<import("zod").ZodString>;
|
|
@@ -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,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"ipfsCid": "QmTHxA1szqumjfndvB8D59qRPhrhMsJWr6jTq81RFeaf1D",
|
|
3
|
-
"pkpTokenId": "
|
|
4
|
-
"pkpPublicKey": "
|
|
5
|
-
"pkpEthAddress": "
|
|
3
|
+
"pkpTokenId": "76098143227047229486816515135507601076492967288630594604111588574212664320176",
|
|
4
|
+
"pkpPublicKey": "0x0491b71bc50fccc210953141b1f824fae69f7caa8a8f3e77e242f098431ba9b4be971785af76880892c2f963bfa3700aab35bc00b8bede798d0f956d343e11b343",
|
|
5
|
+
"pkpEthAddress": "0x4751ECc8c2918BAbD35ef44eE6759A05Ef110CAE"
|
|
6
6
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
export declare const abilityParamsSchema: z.ZodObject<{
|
|
3
|
-
action: z.ZodEnum<["approve", "swap"
|
|
3
|
+
action: z.ZodEnum<["approve", "swap"]>;
|
|
4
4
|
rpcUrlForUniswap: z.ZodString;
|
|
5
5
|
signedUniswapQuote: z.ZodObject<{
|
|
6
6
|
quote: z.ZodObject<{
|
|
@@ -94,7 +94,7 @@ export declare const abilityParamsSchema: z.ZodObject<{
|
|
|
94
94
|
alchemyGasSponsorPolicyId: z.ZodOptional<z.ZodString>;
|
|
95
95
|
}, "strip", z.ZodTypeAny, {
|
|
96
96
|
alchemyGasSponsor: boolean;
|
|
97
|
-
action: "swap" | "approve"
|
|
97
|
+
action: "swap" | "approve";
|
|
98
98
|
rpcUrlForUniswap: string;
|
|
99
99
|
signedUniswapQuote: {
|
|
100
100
|
quote: {
|
|
@@ -120,7 +120,7 @@ export declare const abilityParamsSchema: z.ZodObject<{
|
|
|
120
120
|
alchemyGasSponsorApiKey?: string | undefined;
|
|
121
121
|
alchemyGasSponsorPolicyId?: string | undefined;
|
|
122
122
|
}, {
|
|
123
|
-
action: "swap" | "approve"
|
|
123
|
+
action: "swap" | "approve";
|
|
124
124
|
rpcUrlForUniswap: string;
|
|
125
125
|
signedUniswapQuote: {
|
|
126
126
|
quote: {
|
|
@@ -148,23 +148,26 @@ export declare const abilityParamsSchema: z.ZodObject<{
|
|
|
148
148
|
alchemyGasSponsorPolicyId?: string | undefined;
|
|
149
149
|
}>;
|
|
150
150
|
export declare const precheckSuccessSchema: z.ZodObject<{
|
|
151
|
-
nativeTokenBalance: z.ZodString
|
|
152
|
-
tokenInAddress: z.ZodString
|
|
153
|
-
tokenInBalance: z.ZodString
|
|
151
|
+
nativeTokenBalance: z.ZodOptional<z.ZodString>;
|
|
152
|
+
tokenInAddress: z.ZodOptional<z.ZodString>;
|
|
153
|
+
tokenInBalance: z.ZodOptional<z.ZodString>;
|
|
154
154
|
currentTokenInAllowanceForSpender: z.ZodString;
|
|
155
155
|
spenderAddress: z.ZodString;
|
|
156
|
+
requiredTokenInAllowance: z.ZodOptional<z.ZodString>;
|
|
156
157
|
}, "strip", z.ZodTypeAny, {
|
|
157
|
-
tokenInAddress: string;
|
|
158
158
|
spenderAddress: string;
|
|
159
|
-
nativeTokenBalance: string;
|
|
160
|
-
tokenInBalance: string;
|
|
161
159
|
currentTokenInAllowanceForSpender: string;
|
|
160
|
+
tokenInAddress?: string | undefined;
|
|
161
|
+
nativeTokenBalance?: string | undefined;
|
|
162
|
+
tokenInBalance?: string | undefined;
|
|
163
|
+
requiredTokenInAllowance?: string | undefined;
|
|
162
164
|
}, {
|
|
163
|
-
tokenInAddress: string;
|
|
164
165
|
spenderAddress: string;
|
|
165
|
-
nativeTokenBalance: string;
|
|
166
|
-
tokenInBalance: string;
|
|
167
166
|
currentTokenInAllowanceForSpender: string;
|
|
167
|
+
tokenInAddress?: string | undefined;
|
|
168
|
+
nativeTokenBalance?: string | undefined;
|
|
169
|
+
tokenInBalance?: string | undefined;
|
|
170
|
+
requiredTokenInAllowance?: string | undefined;
|
|
168
171
|
}>;
|
|
169
172
|
export declare const precheckFailSchema: z.ZodObject<{
|
|
170
173
|
reason: z.ZodString;
|
|
@@ -204,13 +207,16 @@ export declare const executeSuccessSchema: z.ZodObject<{
|
|
|
204
207
|
approvalTxHash: z.ZodOptional<z.ZodString>;
|
|
205
208
|
approvalTxUserOperationHash: z.ZodOptional<z.ZodString>;
|
|
206
209
|
currentAllowance: z.ZodOptional<z.ZodString>;
|
|
210
|
+
requiredAllowance: z.ZodOptional<z.ZodString>;
|
|
207
211
|
}, "strip", z.ZodTypeAny, {
|
|
212
|
+
requiredAllowance?: string | undefined;
|
|
208
213
|
currentAllowance?: string | undefined;
|
|
209
214
|
swapTxHash?: string | undefined;
|
|
210
215
|
swapTxUserOperationHash?: string | undefined;
|
|
211
216
|
approvalTxHash?: string | undefined;
|
|
212
217
|
approvalTxUserOperationHash?: string | undefined;
|
|
213
218
|
}, {
|
|
219
|
+
requiredAllowance?: string | undefined;
|
|
214
220
|
currentAllowance?: string | undefined;
|
|
215
221
|
swapTxHash?: string | undefined;
|
|
216
222
|
swapTxUserOperationHash?: string | undefined;
|
|
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqD9B,CAAC;AAEH,eAAO,MAAM,qBAAqB
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqD9B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;EAqBhC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;EAoB7B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;EAE5B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;EAwB/B,CAAC"}
|
package/dist/src/lib/schemas.js
CHANGED
|
@@ -4,8 +4,8 @@ exports.executeSuccessSchema = exports.executeFailSchema = exports.precheckFailS
|
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
exports.abilityParamsSchema = zod_1.z.object({
|
|
6
6
|
action: zod_1.z
|
|
7
|
-
.enum(['approve', 'swap'
|
|
8
|
-
.describe('Dictates whether to perform an ERC20 approval
|
|
7
|
+
.enum(['approve', 'swap'])
|
|
8
|
+
.describe('Dictates whether to perform an ERC20 approval or a swap using the signed Uniswap quote'),
|
|
9
9
|
rpcUrlForUniswap: zod_1.z
|
|
10
10
|
.string()
|
|
11
11
|
.describe('An RPC endpoint for any chain that is supported by the @uniswap/sdk-core package. Must work for the chain specified in the signed Uniswap quote.'),
|
|
@@ -53,13 +53,26 @@ exports.abilityParamsSchema = zod_1.z.object({
|
|
|
53
53
|
.describe('The policy ID for Alchemy gas sponsorship.'),
|
|
54
54
|
});
|
|
55
55
|
exports.precheckSuccessSchema = zod_1.z.object({
|
|
56
|
-
nativeTokenBalance: zod_1.z
|
|
57
|
-
|
|
58
|
-
|
|
56
|
+
nativeTokenBalance: zod_1.z
|
|
57
|
+
.string()
|
|
58
|
+
.describe('The balance of the native token used for gas fees')
|
|
59
|
+
.optional(),
|
|
60
|
+
tokenInAddress: zod_1.z
|
|
61
|
+
.string()
|
|
62
|
+
.describe('The address of the input token used for the swap')
|
|
63
|
+
.optional(),
|
|
64
|
+
tokenInBalance: zod_1.z
|
|
65
|
+
.string()
|
|
66
|
+
.describe('The balance of the input token used for the swap')
|
|
67
|
+
.optional(),
|
|
59
68
|
currentTokenInAllowanceForSpender: zod_1.z
|
|
60
69
|
.string()
|
|
61
70
|
.describe('The current allowance of the input token used for the swap'),
|
|
62
71
|
spenderAddress: zod_1.z.string().describe('The Uniswap router address that will be used for the swap'),
|
|
72
|
+
requiredTokenInAllowance: zod_1.z
|
|
73
|
+
.string()
|
|
74
|
+
.describe('The required allowance of the input token for the swap for the ERC20 spender')
|
|
75
|
+
.optional(),
|
|
63
76
|
});
|
|
64
77
|
exports.precheckFailSchema = zod_1.z.object({
|
|
65
78
|
reason: zod_1.z.string().describe('The reason the precheck failed'),
|
|
@@ -103,5 +116,9 @@ exports.executeSuccessSchema = zod_1.z.object({
|
|
|
103
116
|
.string()
|
|
104
117
|
.describe('The current allowance of the input token used for the swap for the ERC20 spender')
|
|
105
118
|
.optional(),
|
|
119
|
+
requiredAllowance: zod_1.z
|
|
120
|
+
.string()
|
|
121
|
+
.describe('The required allowance of the input token used for the swap for the ERC20 spender')
|
|
122
|
+
.optional(),
|
|
106
123
|
});
|
|
107
124
|
//# sourceMappingURL=schemas.js.map
|
|
@@ -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,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/lib/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare const bigintReplacer: (key: any, value: any) => any;
|
|
2
2
|
export declare const vincentAbility: import("@lit-protocol/vincent-ability-sdk").VincentAbility<import("zod").ZodObject<{
|
|
3
|
-
action: import("zod").ZodEnum<["approve", "swap"
|
|
3
|
+
action: import("zod").ZodEnum<["approve", "swap"]>;
|
|
4
4
|
rpcUrlForUniswap: import("zod").ZodString;
|
|
5
5
|
signedUniswapQuote: import("zod").ZodObject<{
|
|
6
6
|
quote: import("zod").ZodObject<{
|
|
@@ -94,7 +94,7 @@ export declare const vincentAbility: import("@lit-protocol/vincent-ability-sdk")
|
|
|
94
94
|
alchemyGasSponsorPolicyId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
95
95
|
}, "strip", import("zod").ZodTypeAny, {
|
|
96
96
|
alchemyGasSponsor: boolean;
|
|
97
|
-
action: "swap" | "approve"
|
|
97
|
+
action: "swap" | "approve";
|
|
98
98
|
rpcUrlForUniswap: string;
|
|
99
99
|
signedUniswapQuote: {
|
|
100
100
|
quote: {
|
|
@@ -120,7 +120,7 @@ export declare const vincentAbility: import("@lit-protocol/vincent-ability-sdk")
|
|
|
120
120
|
alchemyGasSponsorApiKey?: string | undefined;
|
|
121
121
|
alchemyGasSponsorPolicyId?: string | undefined;
|
|
122
122
|
}, {
|
|
123
|
-
action: "swap" | "approve"
|
|
123
|
+
action: "swap" | "approve";
|
|
124
124
|
rpcUrlForUniswap: string;
|
|
125
125
|
signedUniswapQuote: {
|
|
126
126
|
quote: {
|
|
@@ -152,13 +152,16 @@ export declare const vincentAbility: import("@lit-protocol/vincent-ability-sdk")
|
|
|
152
152
|
approvalTxHash: import("zod").ZodOptional<import("zod").ZodString>;
|
|
153
153
|
approvalTxUserOperationHash: import("zod").ZodOptional<import("zod").ZodString>;
|
|
154
154
|
currentAllowance: import("zod").ZodOptional<import("zod").ZodString>;
|
|
155
|
+
requiredAllowance: import("zod").ZodOptional<import("zod").ZodString>;
|
|
155
156
|
}, "strip", import("zod").ZodTypeAny, {
|
|
157
|
+
requiredAllowance?: string | undefined;
|
|
156
158
|
currentAllowance?: string | undefined;
|
|
157
159
|
swapTxHash?: string | undefined;
|
|
158
160
|
swapTxUserOperationHash?: string | undefined;
|
|
159
161
|
approvalTxHash?: string | undefined;
|
|
160
162
|
approvalTxUserOperationHash?: string | undefined;
|
|
161
163
|
}, {
|
|
164
|
+
requiredAllowance?: string | undefined;
|
|
162
165
|
currentAllowance?: string | undefined;
|
|
163
166
|
swapTxHash?: string | undefined;
|
|
164
167
|
swapTxUserOperationHash?: string | undefined;
|
|
@@ -171,23 +174,26 @@ export declare const vincentAbility: import("@lit-protocol/vincent-ability-sdk")
|
|
|
171
174
|
}, {
|
|
172
175
|
reason?: string | undefined;
|
|
173
176
|
}>, import("zod").ZodObject<{
|
|
174
|
-
nativeTokenBalance: import("zod").ZodString
|
|
175
|
-
tokenInAddress: import("zod").ZodString
|
|
176
|
-
tokenInBalance: import("zod").ZodString
|
|
177
|
+
nativeTokenBalance: import("zod").ZodOptional<import("zod").ZodString>;
|
|
178
|
+
tokenInAddress: import("zod").ZodOptional<import("zod").ZodString>;
|
|
179
|
+
tokenInBalance: import("zod").ZodOptional<import("zod").ZodString>;
|
|
177
180
|
currentTokenInAllowanceForSpender: import("zod").ZodString;
|
|
178
181
|
spenderAddress: import("zod").ZodString;
|
|
182
|
+
requiredTokenInAllowance: import("zod").ZodOptional<import("zod").ZodString>;
|
|
179
183
|
}, "strip", import("zod").ZodTypeAny, {
|
|
180
|
-
tokenInAddress: string;
|
|
181
184
|
spenderAddress: string;
|
|
182
|
-
nativeTokenBalance: string;
|
|
183
|
-
tokenInBalance: string;
|
|
184
185
|
currentTokenInAllowanceForSpender: string;
|
|
186
|
+
tokenInAddress?: string | undefined;
|
|
187
|
+
nativeTokenBalance?: string | undefined;
|
|
188
|
+
tokenInBalance?: string | undefined;
|
|
189
|
+
requiredTokenInAllowance?: string | undefined;
|
|
185
190
|
}, {
|
|
186
|
-
tokenInAddress: string;
|
|
187
191
|
spenderAddress: string;
|
|
188
|
-
nativeTokenBalance: string;
|
|
189
|
-
tokenInBalance: string;
|
|
190
192
|
currentTokenInAllowanceForSpender: string;
|
|
193
|
+
tokenInAddress?: string | undefined;
|
|
194
|
+
nativeTokenBalance?: string | undefined;
|
|
195
|
+
tokenInBalance?: string | undefined;
|
|
196
|
+
requiredTokenInAllowance?: string | undefined;
|
|
191
197
|
}>, import("zod").ZodObject<{
|
|
192
198
|
reason: import("zod").ZodString;
|
|
193
199
|
spenderAddress: import("zod").ZodOptional<import("zod").ZodString>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vincent-ability.d.ts","sourceRoot":"","sources":["../../../src/lib/vincent-ability.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,cAAc,GAAI,KAAK,GAAG,EAAE,OAAO,GAAG,QAElD,CAAC;AAEF,eAAO,MAAM,cAAc
|
|
1
|
+
{"version":3,"file":"vincent-ability.d.ts","sourceRoot":"","sources":["../../../src/lib/vincent-ability.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,cAAc,GAAI,KAAK,GAAG,EAAE,OAAO,GAAG,QAElD,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4QzB,CAAC"}
|
|
@@ -27,7 +27,7 @@ exports.vincentAbility = (0, vincent_ability_sdk_1.createVincentAbility)({
|
|
|
27
27
|
precheck: async ({ abilityParams }, { succeed, fail, delegation: { delegatorPkpInfo } }) => {
|
|
28
28
|
console.log('Prechecking UniswapSwapAbility', JSON.stringify(abilityParams, exports.bigintReplacer, 2));
|
|
29
29
|
// TODO: Rewrite checks to use `createAllowResult` and `createDenyResult` so we always know when we get a runtime err
|
|
30
|
-
const { rpcUrlForUniswap, signedUniswapQuote } = abilityParams;
|
|
30
|
+
const { action, alchemyGasSponsor, rpcUrlForUniswap, signedUniswapQuote } = abilityParams;
|
|
31
31
|
const { quote } = signedUniswapQuote;
|
|
32
32
|
try {
|
|
33
33
|
(0, validate_signed_uniswap_quote_1.validateSignedUniswapQuote)({
|
|
@@ -43,16 +43,55 @@ exports.vincentAbility = (0, vincent_ability_sdk_1.createVincentAbility)({
|
|
|
43
43
|
}
|
|
44
44
|
const delegatorPkpAddress = delegatorPkpInfo.ethAddress;
|
|
45
45
|
const provider = new ethers_1.ethers.providers.StaticJsonRpcProvider(rpcUrlForUniswap);
|
|
46
|
-
|
|
46
|
+
// 1. If alchemyGasSponsor is not enabled, we need to check if the delegator has a non-zero amount of native token balance to pay for gas fees
|
|
47
|
+
let checkNativeTokenBalanceResultSuccess;
|
|
48
|
+
if (!alchemyGasSponsor) {
|
|
49
|
+
const checkNativeTokenBalanceResult = await (0, ability_checks_1.checkNativeTokenBalance)({
|
|
50
|
+
provider,
|
|
51
|
+
pkpEthAddress: delegatorPkpAddress,
|
|
52
|
+
});
|
|
53
|
+
if (!checkNativeTokenBalanceResult.success) {
|
|
54
|
+
return fail({
|
|
55
|
+
reason: checkNativeTokenBalanceResult.reason,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
checkNativeTokenBalanceResultSuccess = checkNativeTokenBalanceResult;
|
|
59
|
+
}
|
|
60
|
+
const requiredTokenInAmount = ethers_1.ethers.utils.parseUnits(quote.amountIn, quote.tokenInDecimals);
|
|
61
|
+
// 2. We retrieve the current allowance of the input token for the spender from the delegator
|
|
62
|
+
const checkErc20AllowanceResult = await (0, ability_checks_1.checkErc20Allowance)({
|
|
47
63
|
provider,
|
|
48
|
-
|
|
64
|
+
tokenAddress: quote.tokenIn,
|
|
65
|
+
owner: delegatorPkpInfo.ethAddress,
|
|
66
|
+
spender: quote.to,
|
|
67
|
+
requiredAllowance: requiredTokenInAmount,
|
|
49
68
|
});
|
|
50
|
-
|
|
69
|
+
// 3. If the ability action is approve, we return the current allowance since all
|
|
70
|
+
// precheck is concerned with is whether the delegatee can call execute with the approve ability action which just needs to know if
|
|
71
|
+
// the gas for the approval transaction can be paid for (whether by gas sponsorship, or by the delegator).
|
|
72
|
+
// We return the current allowance out of convenience, so the delegatee can know if
|
|
73
|
+
// the current allowance is sufficient without having to call execute.
|
|
74
|
+
if (action === types_1.AbilityAction.Approve) {
|
|
75
|
+
return succeed({
|
|
76
|
+
nativeTokenBalance: checkNativeTokenBalanceResultSuccess?.ethBalance.toString(),
|
|
77
|
+
currentTokenInAllowanceForSpender: ethers_1.ethers.utils.formatUnits(checkErc20AllowanceResult.currentAllowance, quote.tokenInDecimals),
|
|
78
|
+
requiredTokenInAllowance: ethers_1.ethers.utils.formatUnits(checkErc20AllowanceResult.requiredAllowance, quote.tokenInDecimals),
|
|
79
|
+
spenderAddress: checkErc20AllowanceResult.spenderAddress,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
// 4. If the ability action is swap, and the current allowance is insufficient, we return a failure
|
|
83
|
+
// because the swap cannot currently be performed.
|
|
84
|
+
if (action === types_1.AbilityAction.Swap && !checkErc20AllowanceResult.success) {
|
|
51
85
|
return fail({
|
|
52
|
-
reason:
|
|
86
|
+
reason: checkErc20AllowanceResult.reason,
|
|
87
|
+
spenderAddress: checkErc20AllowanceResult.spenderAddress,
|
|
88
|
+
tokenAddress: checkErc20AllowanceResult.tokenAddress,
|
|
89
|
+
requiredAllowance: ethers_1.ethers.utils.formatUnits(checkErc20AllowanceResult.requiredAllowance, quote.tokenInDecimals),
|
|
90
|
+
currentAllowance: ethers_1.ethers.utils.formatUnits(checkErc20AllowanceResult.currentAllowance, quote.tokenInDecimals),
|
|
53
91
|
});
|
|
54
92
|
}
|
|
55
|
-
|
|
93
|
+
// 5. At this point, the ability action is swap, and the current allowance is sufficient.
|
|
94
|
+
// We now need to check if the current delegator balance of tokenIn is sufficient to perform the swap.
|
|
56
95
|
const checkErc20BalanceResult = await (0, ability_checks_1.checkErc20Balance)({
|
|
57
96
|
provider,
|
|
58
97
|
pkpEthAddress: delegatorPkpAddress,
|
|
@@ -63,31 +102,18 @@ exports.vincentAbility = (0, vincent_ability_sdk_1.createVincentAbility)({
|
|
|
63
102
|
return fail({
|
|
64
103
|
reason: checkErc20BalanceResult.reason,
|
|
65
104
|
tokenAddress: checkErc20BalanceResult.tokenAddress,
|
|
66
|
-
requiredTokenAmount: checkErc20BalanceResult.requiredTokenAmount.
|
|
67
|
-
tokenBalance: checkErc20BalanceResult.tokenBalance.
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
const checkErc20AllowanceResult = await (0, ability_checks_1.checkErc20Allowance)({
|
|
71
|
-
provider,
|
|
72
|
-
tokenAddress: quote.tokenIn,
|
|
73
|
-
owner: delegatorPkpAddress,
|
|
74
|
-
spender: quote.to,
|
|
75
|
-
requiredAllowance: requiredTokenInAmount,
|
|
76
|
-
});
|
|
77
|
-
if (!checkErc20AllowanceResult.success) {
|
|
78
|
-
return fail({
|
|
79
|
-
reason: checkErc20AllowanceResult.reason,
|
|
80
|
-
spenderAddress: checkErc20AllowanceResult.spenderAddress,
|
|
81
|
-
tokenAddress: checkErc20AllowanceResult.tokenAddress,
|
|
82
|
-
requiredAllowance: checkErc20AllowanceResult.requiredAllowance.toString(),
|
|
83
|
-
currentAllowance: checkErc20AllowanceResult.currentAllowance.toString(),
|
|
105
|
+
requiredTokenAmount: ethers_1.ethers.utils.formatUnits(checkErc20BalanceResult.requiredTokenAmount, quote.tokenInDecimals),
|
|
106
|
+
tokenBalance: ethers_1.ethers.utils.formatUnits(checkErc20BalanceResult.tokenBalance, quote.tokenInDecimals),
|
|
84
107
|
});
|
|
85
108
|
}
|
|
109
|
+
// 6. At this point, we know that the current allowance and
|
|
110
|
+
// the delegator's balance of tokenIn are sufficient to perform the swap
|
|
86
111
|
return succeed({
|
|
87
|
-
nativeTokenBalance:
|
|
112
|
+
nativeTokenBalance: checkNativeTokenBalanceResultSuccess?.ethBalance.toString(),
|
|
88
113
|
tokenInAddress: checkErc20BalanceResult.tokenAddress,
|
|
89
|
-
tokenInBalance: checkErc20BalanceResult.tokenBalance.
|
|
90
|
-
currentTokenInAllowanceForSpender: checkErc20AllowanceResult.currentAllowance.
|
|
114
|
+
tokenInBalance: ethers_1.ethers.utils.formatUnits(checkErc20BalanceResult.tokenBalance, quote.tokenInDecimals),
|
|
115
|
+
currentTokenInAllowanceForSpender: ethers_1.ethers.utils.formatUnits(checkErc20AllowanceResult.currentAllowance, quote.tokenInDecimals),
|
|
116
|
+
requiredTokenInAllowance: ethers_1.ethers.utils.formatUnits(checkErc20AllowanceResult.requiredAllowance, quote.tokenInDecimals),
|
|
91
117
|
spenderAddress: checkErc20AllowanceResult.spenderAddress,
|
|
92
118
|
});
|
|
93
119
|
},
|
|
@@ -95,16 +121,6 @@ exports.vincentAbility = (0, vincent_ability_sdk_1.createVincentAbility)({
|
|
|
95
121
|
console.log('Executing UniswapSwapAbility', JSON.stringify(abilityParams, exports.bigintReplacer, 2));
|
|
96
122
|
const { action, rpcUrlForUniswap, signedUniswapQuote, gasBufferPercentage, baseFeePerGasBufferPercentage, alchemyGasSponsor, alchemyGasSponsorApiKey, alchemyGasSponsorPolicyId, } = abilityParams;
|
|
97
123
|
const { quote } = signedUniswapQuote;
|
|
98
|
-
if (!action) {
|
|
99
|
-
return fail({
|
|
100
|
-
reason: `The action parameter is required. Please use one of the following: ${Object.values(types_1.AbilityAction).join(', ')}`,
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
if (!Object.values(types_1.AbilityAction).includes(action)) {
|
|
104
|
-
return fail({
|
|
105
|
-
reason: `The provided action: ${action} is not supported. Please use one of the following: ${Object.values(types_1.AbilityAction).join(', ')}`,
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
124
|
try {
|
|
109
125
|
(0, validate_signed_uniswap_quote_1.validateSignedUniswapQuote)({
|
|
110
126
|
prepareSuccessResult: signedUniswapQuote,
|
|
@@ -117,9 +133,10 @@ exports.vincentAbility = (0, vincent_ability_sdk_1.createVincentAbility)({
|
|
|
117
133
|
reason: `Uniswap quote validation failed: ${error instanceof Error ? error.message : String(error)}`,
|
|
118
134
|
});
|
|
119
135
|
}
|
|
136
|
+
// 1. If the ability action is approve, we return success if allowance is sufficient, otherwise we send a new approval transaction
|
|
120
137
|
let approvalTxHash;
|
|
121
138
|
let approvalTxUserOperationHash;
|
|
122
|
-
if (action === types_1.AbilityAction.Approve
|
|
139
|
+
if (action === types_1.AbilityAction.Approve) {
|
|
123
140
|
const provider = new ethers_1.ethers.providers.StaticJsonRpcProvider(rpcUrlForUniswap);
|
|
124
141
|
const requiredTokenInAmount = ethers_1.ethers.utils.parseUnits(quote.amountIn, quote.tokenInDecimals);
|
|
125
142
|
const checkErc20AllowanceResult = await (0, ability_checks_1.checkErc20Allowance)({
|
|
@@ -131,14 +148,16 @@ exports.vincentAbility = (0, vincent_ability_sdk_1.createVincentAbility)({
|
|
|
131
148
|
});
|
|
132
149
|
if (checkErc20AllowanceResult.success) {
|
|
133
150
|
console.log(`Sufficient allowance already exists for spender ${quote.to}, skipping approval transaction. Current allowance: ${checkErc20AllowanceResult.currentAllowance.toString()}`);
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
151
|
+
// 1.1 Because the ability action is approve, we return success since the current allowance is sufficient,
|
|
152
|
+
// and a new approval transaction is not needed.
|
|
153
|
+
return succeed({
|
|
154
|
+
currentAllowance: ethers_1.ethers.utils.formatUnits(checkErc20AllowanceResult.currentAllowance, quote.tokenInDecimals),
|
|
155
|
+
requiredAllowance: ethers_1.ethers.utils.formatUnits(checkErc20AllowanceResult.requiredAllowance, quote.tokenInDecimals),
|
|
156
|
+
});
|
|
139
157
|
}
|
|
140
158
|
else {
|
|
141
159
|
if (checkErc20AllowanceResult.reason.includes('insufficient ERC20 allowance for spender')) {
|
|
160
|
+
// 1.2 The current allowance is insufficient, so we need to send a new approval transaction
|
|
142
161
|
const txHash = await (0, send_erc20_approval_tx_1.sendErc20ApprovalTx)({
|
|
143
162
|
rpcUrl: rpcUrlForUniswap,
|
|
144
163
|
chainId: quote.chainId,
|
|
@@ -159,6 +178,7 @@ exports.vincentAbility = (0, vincent_ability_sdk_1.createVincentAbility)({
|
|
|
159
178
|
}
|
|
160
179
|
}
|
|
161
180
|
else {
|
|
181
|
+
// 1.3 Some error other than insufficient allowance occurred, bail out
|
|
162
182
|
return fail({
|
|
163
183
|
reason: checkErc20AllowanceResult.reason,
|
|
164
184
|
});
|
|
@@ -167,7 +187,8 @@ exports.vincentAbility = (0, vincent_ability_sdk_1.createVincentAbility)({
|
|
|
167
187
|
}
|
|
168
188
|
let swapTxHash;
|
|
169
189
|
let swapTxUserOperationHash;
|
|
170
|
-
if (action === types_1.AbilityAction.Swap
|
|
190
|
+
if (action === types_1.AbilityAction.Swap) {
|
|
191
|
+
// 2. The ability action is swap, so we send the swap transaction
|
|
171
192
|
const txHash = await (0, ability_helpers_1.sendUniswapTx)({
|
|
172
193
|
rpcUrl: rpcUrlForUniswap,
|
|
173
194
|
chainId: quote.chainId,
|
|
@@ -189,6 +210,9 @@ exports.vincentAbility = (0, vincent_ability_sdk_1.createVincentAbility)({
|
|
|
189
210
|
swapTxHash = txHash;
|
|
190
211
|
}
|
|
191
212
|
}
|
|
213
|
+
// 3. If the ability action is:
|
|
214
|
+
// - Approve, we return the approval transaction hash.
|
|
215
|
+
// - Swap, we return the swap transaction hash.
|
|
192
216
|
return succeed({
|
|
193
217
|
approvalTxHash,
|
|
194
218
|
approvalTxUserOperationHash,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vincent-ability.js","sourceRoot":"","sources":["../../../src/lib/vincent-ability.ts"],"names":[],"mappings":";;;;AAAA,2EAG2C;AAC3C,mCAAgC;AAEhC,uDAAkD;AAClD,qDAAmG;AACnG,uCAMmB;AACnB,2FAAqF;AACrF,uHAAgF;AAChF,
|
|
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-uniswap-swap",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.0.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -12,11 +12,11 @@
|
|
|
12
12
|
"json-stable-stringify": "^1.3.0",
|
|
13
13
|
"tslib": "2.8.1",
|
|
14
14
|
"zod": "^3.25.64",
|
|
15
|
-
"@lit-protocol/vincent-
|
|
16
|
-
"@lit-protocol/vincent-
|
|
15
|
+
"@lit-protocol/vincent-app-sdk": "2.2.3",
|
|
16
|
+
"@lit-protocol/vincent-ability-sdk": "2.3.1"
|
|
17
17
|
},
|
|
18
18
|
"peerDependencies": {
|
|
19
|
-
"@lit-protocol/vincent-app-sdk": "^2.2.
|
|
19
|
+
"@lit-protocol/vincent-app-sdk": "^2.2.3"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
22
|
"@dotenvx/dotenvx": "^1.44.2",
|