@lit-protocol/vincent-ability-morpho 0.0.7-mma

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.
Files changed (33) hide show
  1. package/CONTRIBUTING.md +90 -0
  2. package/README.md +136 -0
  3. package/dist/CONTRIBUTING.md +90 -0
  4. package/dist/README.md +136 -0
  5. package/dist/package.json +34 -0
  6. package/dist/src/generated/lit-action.js +9 -0
  7. package/dist/src/generated/vincent-ability-metadata.json +3 -0
  8. package/dist/src/generated/vincent-bundled-ability.d.ts +98 -0
  9. package/dist/src/generated/vincent-bundled-ability.d.ts.map +1 -0
  10. package/dist/src/generated/vincent-bundled-ability.js +15 -0
  11. package/dist/src/generated/vincent-bundled-ability.js.map +1 -0
  12. package/dist/src/generated/vincent-bundled-ability.ts +13 -0
  13. package/dist/src/index.d.ts +3 -0
  14. package/dist/src/index.d.ts.map +1 -0
  15. package/dist/src/index.js +8 -0
  16. package/dist/src/index.js.map +1 -0
  17. package/dist/src/lib/helpers/index.d.ts +561 -0
  18. package/dist/src/lib/helpers/index.d.ts.map +1 -0
  19. package/dist/src/lib/helpers/index.js +1123 -0
  20. package/dist/src/lib/helpers/index.js.map +1 -0
  21. package/dist/src/lib/lit-action.d.ts +2 -0
  22. package/dist/src/lib/lit-action.d.ts.map +1 -0
  23. package/dist/src/lib/lit-action.js +16 -0
  24. package/dist/src/lib/lit-action.js.map +1 -0
  25. package/dist/src/lib/schemas.d.ts +125 -0
  26. package/dist/src/lib/schemas.d.ts.map +1 -0
  27. package/dist/src/lib/schemas.js +109 -0
  28. package/dist/src/lib/schemas.js.map +1 -0
  29. package/dist/src/lib/vincent-ability.d.ts +96 -0
  30. package/dist/src/lib/vincent-ability.d.ts.map +1 -0
  31. package/dist/src/lib/vincent-ability.js +378 -0
  32. package/dist/src/lib/vincent-ability.js.map +1 -0
  33. package/package.json +33 -0
@@ -0,0 +1,378 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.vincentAbility = void 0;
4
+ const vincent_ability_sdk_1 = require("@lit-protocol/vincent-ability-sdk");
5
+ const schemas_1 = require("./schemas");
6
+ const helpers_1 = require("./helpers");
7
+ const ethers_1 = require("ethers");
8
+ exports.vincentAbility = (0, vincent_ability_sdk_1.createVincentAbility)({
9
+ packageName: '@lit-protocol/vincent-ability-morpho',
10
+ abilityDescription: 'Interact with Morpho Vaults (deposit, withdraw, redeem) and Markets (supply, withdrawCollateral).',
11
+ abilityParamsSchema: schemas_1.abilityParamsSchema,
12
+ supportedPolicies: (0, vincent_ability_sdk_1.supportedPoliciesForAbility)([]),
13
+ precheckSuccessSchema: schemas_1.precheckSuccessSchema,
14
+ precheckFailSchema: schemas_1.precheckFailSchema,
15
+ executeSuccessSchema: schemas_1.executeSuccessSchema,
16
+ executeFailSchema: schemas_1.executeFailSchema,
17
+ precheck: async ({ abilityParams }, { succeed, fail, delegation: { delegatorPkpInfo } }) => {
18
+ try {
19
+ console.log('[@lit-protocol/vincent-ability-morpho/precheck]');
20
+ console.log('[@lit-protocol/vincent-ability-morpho/precheck] params:', {
21
+ abilityParams,
22
+ });
23
+ const { operation, contractAddress, marketId, amount, onBehalfOf, rpcUrl } = abilityParams;
24
+ // Validate operation
25
+ if (!Object.values(schemas_1.MorphoOperation).includes(operation)) {
26
+ return fail({
27
+ error: '[@lit-protocol/vincent-ability-morpho/precheck] Invalid operation. Must be vault_deposit, vault_withdraw, vault_redeem, market_supply, or market_withdrawCollateral',
28
+ });
29
+ }
30
+ // Check if market operations have required marketId
31
+ const isMarketOperation = [
32
+ schemas_1.MorphoOperation.MARKET_SUPPLY,
33
+ schemas_1.MorphoOperation.MARKET_WITHDRAW_COLLATERAL,
34
+ ].includes(operation);
35
+ if (isMarketOperation && !marketId) {
36
+ return fail({
37
+ error: '[@lit-protocol/vincent-ability-morpho/precheck] Market ID is required for market operations',
38
+ });
39
+ }
40
+ // Validate contract address
41
+ if (!(0, helpers_1.isValidAddress)(contractAddress)) {
42
+ return fail({
43
+ error: '[@lit-protocol/vincent-ability-morpho/precheck] Invalid contract address format',
44
+ });
45
+ }
46
+ // Validate amount
47
+ if (!amount || isNaN(parseFloat(amount)) || parseFloat(amount) <= 0) {
48
+ return fail({
49
+ error: '[@lit-protocol/vincent-ability-morpho/precheck] Invalid amount format or amount must be greater than 0',
50
+ });
51
+ }
52
+ // Enhanced validation - connect to blockchain and validate everything the execute function would need
53
+ console.log('[@lit-protocol/vincent-ability-morpho/precheck] Starting enhanced validation...');
54
+ if (!rpcUrl) {
55
+ return fail({
56
+ error: '[@lit-protocol/vincent-ability-morpho/precheck] RPC URL is required for precheck',
57
+ });
58
+ }
59
+ // Get provider
60
+ let provider;
61
+ try {
62
+ provider = new ethers_1.ethers.providers.JsonRpcProvider(rpcUrl);
63
+ }
64
+ catch (error) {
65
+ return fail({
66
+ error: `[@lit-protocol/vincent-ability-morpho/precheck] Unable to obtain blockchain provider: ${error instanceof Error ? error.message : String(error)}`,
67
+ });
68
+ }
69
+ // Get PKP address
70
+ const pkpAddress = delegatorPkpInfo.ethAddress;
71
+ // Initialize variables
72
+ let assetAddress;
73
+ let assetDecimals;
74
+ let userBalance = '0';
75
+ let allowance = '0';
76
+ let vaultShares = '0';
77
+ let collateralBalance = '0';
78
+ try {
79
+ if (isMarketOperation) {
80
+ // Handle market operations
81
+ const marketContract = new ethers_1.ethers.Contract(contractAddress, helpers_1.MORPHO_MARKET_ABI, provider);
82
+ // Get market params from marketId
83
+ const marketParams = await marketContract.idToMarketParams(marketId);
84
+ assetAddress =
85
+ operation === schemas_1.MorphoOperation.MARKET_SUPPLY
86
+ ? marketParams.loanToken
87
+ : marketParams.collateralToken;
88
+ // Get user position in the market
89
+ const position = await marketContract.position(marketId, pkpAddress);
90
+ collateralBalance = position.collateral.toString();
91
+ // Get asset info
92
+ const assetContract = new ethers_1.ethers.Contract(assetAddress, helpers_1.ERC20_ABI, provider);
93
+ assetDecimals = await assetContract.decimals();
94
+ userBalance = (await assetContract.balanceOf(pkpAddress)).toString();
95
+ allowance = (await assetContract.allowance(pkpAddress, contractAddress)).toString();
96
+ }
97
+ else {
98
+ // Handle vault operations
99
+ const vaultContract = new ethers_1.ethers.Contract(contractAddress, helpers_1.ERC4626_VAULT_ABI, provider);
100
+ assetAddress = await vaultContract.asset();
101
+ vaultShares = (await vaultContract.balanceOf(pkpAddress)).toString();
102
+ const assetContract = new ethers_1.ethers.Contract(assetAddress, helpers_1.ERC20_ABI, provider);
103
+ userBalance = (await assetContract.balanceOf(pkpAddress)).toString();
104
+ allowance = (await assetContract.allowance(pkpAddress, contractAddress)).toString();
105
+ if (operation === schemas_1.MorphoOperation.VAULT_REDEEM) {
106
+ // we're redeeming shares, so need to use the decimals from the shares contract, not the assets contract
107
+ assetDecimals = await vaultContract.decimals();
108
+ }
109
+ else {
110
+ assetDecimals = await assetContract.decimals();
111
+ }
112
+ }
113
+ }
114
+ catch (error) {
115
+ return fail({
116
+ error: `[@lit-protocol/vincent-ability-morpho/precheck] Invalid contract address or contract not found on network: ${error}`,
117
+ });
118
+ }
119
+ // Convert amount using proper decimals
120
+ const convertedAmount = (0, helpers_1.parseAmount)(amount, assetDecimals);
121
+ // Operation-specific validations
122
+ const operationChecks = await (0, helpers_1.validateOperationRequirements)(operation, userBalance, allowance, vaultShares, convertedAmount, collateralBalance);
123
+ if (!operationChecks.valid) {
124
+ return fail({
125
+ error: `[@lit-protocol/vincent-ability-morpho/precheck] ${operationChecks.error}`,
126
+ });
127
+ }
128
+ // Estimate gas for the operation
129
+ let estimatedGas = 0;
130
+ try {
131
+ const targetAddress = onBehalfOf || pkpAddress;
132
+ if (isMarketOperation) {
133
+ const marketContract = new ethers_1.ethers.Contract(contractAddress, helpers_1.MORPHO_MARKET_ABI, provider);
134
+ const marketParams = await marketContract.idToMarketParams(marketId);
135
+ const marketParamsTuple = [
136
+ marketParams.loanToken,
137
+ marketParams.collateralToken,
138
+ marketParams.oracle,
139
+ marketParams.irm,
140
+ marketParams.lltv,
141
+ ];
142
+ switch (operation) {
143
+ case schemas_1.MorphoOperation.MARKET_SUPPLY:
144
+ estimatedGas = (await marketContract.estimateGas.supply(marketParamsTuple, convertedAmount, 0, // shares (0 means all assets)
145
+ targetAddress, '0x', // empty data
146
+ { from: pkpAddress })).toNumber();
147
+ break;
148
+ case schemas_1.MorphoOperation.MARKET_WITHDRAW_COLLATERAL:
149
+ estimatedGas = (await marketContract.estimateGas.withdrawCollateral(marketParamsTuple, convertedAmount, pkpAddress, pkpAddress, { from: pkpAddress })).toNumber();
150
+ break;
151
+ }
152
+ }
153
+ else {
154
+ const vaultContract = new ethers_1.ethers.Contract(contractAddress, helpers_1.ERC4626_VAULT_ABI, provider);
155
+ switch (operation) {
156
+ case schemas_1.MorphoOperation.VAULT_DEPOSIT:
157
+ estimatedGas = (await vaultContract.estimateGas.deposit(convertedAmount, targetAddress, {
158
+ from: pkpAddress,
159
+ })).toNumber();
160
+ break;
161
+ case schemas_1.MorphoOperation.VAULT_WITHDRAW:
162
+ estimatedGas = (await vaultContract.estimateGas.withdraw(convertedAmount, pkpAddress, pkpAddress, {
163
+ from: pkpAddress,
164
+ })).toNumber();
165
+ break;
166
+ case schemas_1.MorphoOperation.VAULT_REDEEM:
167
+ estimatedGas = (await vaultContract.estimateGas.redeem(convertedAmount, pkpAddress, pkpAddress, {
168
+ from: pkpAddress,
169
+ })).toNumber();
170
+ break;
171
+ }
172
+ }
173
+ }
174
+ catch (error) {
175
+ console.warn('[@lit-protocol/vincent-ability-morpho/precheck] Gas estimation failed:', error);
176
+ return fail({
177
+ error: `[@lit-protocol/vincent-ability-morpho/precheck] Gas estimation failed: ${error instanceof Error ? error.message : String(error)}`,
178
+ });
179
+ }
180
+ // Enhanced validation passed
181
+ const successResult = {
182
+ operationValid: true,
183
+ contractValid: true,
184
+ amountValid: true,
185
+ userBalance,
186
+ allowance,
187
+ vaultShares: isMarketOperation ? undefined : vaultShares,
188
+ collateralBalance: isMarketOperation ? collateralBalance : undefined,
189
+ estimatedGas,
190
+ };
191
+ console.log('[@lit-protocol/vincent-ability-morpho/precheck] Enhanced validation successful:', successResult);
192
+ return succeed(successResult);
193
+ }
194
+ catch (error) {
195
+ console.error('[@lit-protocol/vincent-ability-morpho/precheck] Error:', error);
196
+ return fail({
197
+ error: `[@lit-protocol/vincent-ability-morpho/precheck] Validation failed: ${error instanceof Error ? error.message : 'Unknown error'}`,
198
+ });
199
+ }
200
+ },
201
+ execute: async ({ abilityParams }, { succeed, fail, delegation }) => {
202
+ try {
203
+ const { operation, contractAddress, marketId, amount, onBehalfOf, chain, rpcUrl, alchemyGasSponsor, alchemyGasSponsorApiKey, alchemyGasSponsorPolicyId, } = abilityParams;
204
+ console.log('[@lit-protocol/vincent-ability-morpho/execute] Executing Morpho Ability', {
205
+ operation,
206
+ contractAddress,
207
+ marketId,
208
+ amount,
209
+ chain,
210
+ });
211
+ if (rpcUrl) {
212
+ return fail({
213
+ error: '[@lit-protocol/vincent-ability-morpho/execute] RPC URL is not permitted for execute. Use the `chain` parameter, and the Lit Nodes will provide the RPC URL for you with the Lit.Actions.getRpcUrl() function',
214
+ });
215
+ }
216
+ if (alchemyGasSponsor && (!alchemyGasSponsorApiKey || !alchemyGasSponsorPolicyId)) {
217
+ return fail({
218
+ error: '[@lit-protocol/vincent-ability-morpho/execute] Alchemy gas sponsor is enabled, but missing Alchemy API key or policy ID',
219
+ });
220
+ }
221
+ // Get provider
222
+ let provider;
223
+ try {
224
+ provider = new ethers_1.ethers.providers.JsonRpcProvider(await Lit.Actions.getRpcUrl({ chain }));
225
+ }
226
+ catch (error) {
227
+ console.error('[@lit-protocol/vincent-ability-morpho/execute] Provider error:', error);
228
+ throw new Error('Unable to obtain blockchain provider for Morpho operations');
229
+ }
230
+ const { chainId } = await provider.getNetwork();
231
+ const isMarketOperation = [
232
+ schemas_1.MorphoOperation.MARKET_SUPPLY,
233
+ schemas_1.MorphoOperation.MARKET_WITHDRAW_COLLATERAL,
234
+ ].includes(operation);
235
+ // Get asset address and decimals
236
+ let assetAddress;
237
+ let assetDecimals;
238
+ if (isMarketOperation) {
239
+ const marketContract = new ethers_1.ethers.Contract(contractAddress, helpers_1.MORPHO_MARKET_ABI, provider);
240
+ const marketParams = await marketContract.idToMarketParams(marketId);
241
+ assetAddress =
242
+ operation === schemas_1.MorphoOperation.MARKET_SUPPLY
243
+ ? marketParams.loanToken
244
+ : marketParams.collateralToken;
245
+ const assetContract = new ethers_1.ethers.Contract(assetAddress, helpers_1.ERC20_ABI, provider);
246
+ assetDecimals = await assetContract.decimals();
247
+ }
248
+ else {
249
+ const vaultContract = new ethers_1.ethers.Contract(contractAddress, helpers_1.ERC4626_VAULT_ABI, provider);
250
+ assetAddress = await vaultContract.asset();
251
+ const assetContract = new ethers_1.ethers.Contract(assetAddress, helpers_1.ERC20_ABI, provider);
252
+ if (operation === schemas_1.MorphoOperation.VAULT_REDEEM) {
253
+ // we're redeeming shares, so need to use the decimals from the shares contract, not the assets contract
254
+ assetDecimals = await vaultContract.decimals();
255
+ }
256
+ else {
257
+ assetDecimals = await assetContract.decimals();
258
+ }
259
+ }
260
+ console.log('[@lit-protocol/vincent-ability-morpho/execute] Asset decimals:', assetDecimals);
261
+ const convertedAmount = (0, helpers_1.parseAmount)(amount, assetDecimals);
262
+ console.log('[@lit-protocol/vincent-ability-morpho/execute] Converted amount:', convertedAmount);
263
+ // Get PKP public key from delegation context
264
+ const pkpPublicKey = delegation.delegatorPkpInfo.publicKey;
265
+ if (!pkpPublicKey) {
266
+ throw new Error('PKP public key not available from delegation context');
267
+ }
268
+ // Get PKP address using ethers utils
269
+ const pkpAddress = ethers_1.ethers.utils.computeAddress(pkpPublicKey);
270
+ console.log('[@lit-protocol/vincent-ability-morpho/execute] PKP Address:', pkpAddress);
271
+ // Prepare and execute transaction based on operation type
272
+ let txHash;
273
+ if (isMarketOperation) {
274
+ if (!marketId) {
275
+ return fail({
276
+ error: '[@lit-protocol/vincent-ability-morpho/execute] Market ID is required for market operations',
277
+ });
278
+ }
279
+ // Handle market operations
280
+ const marketContract = new ethers_1.ethers.Contract(contractAddress, helpers_1.MORPHO_MARKET_ABI, provider);
281
+ const marketParams = await marketContract.idToMarketParams(marketId);
282
+ const marketParamsTuple = [
283
+ marketParams.loanToken,
284
+ marketParams.collateralToken,
285
+ marketParams.oracle,
286
+ marketParams.irm,
287
+ marketParams.lltv,
288
+ ];
289
+ let functionName;
290
+ let args;
291
+ switch (operation) {
292
+ case schemas_1.MorphoOperation.MARKET_SUPPLY:
293
+ functionName = 'supply';
294
+ args = [
295
+ marketParamsTuple,
296
+ convertedAmount,
297
+ 0, // shares (0 means all assets)
298
+ onBehalfOf || pkpAddress,
299
+ '0x', // empty data
300
+ ];
301
+ break;
302
+ case schemas_1.MorphoOperation.MARKET_WITHDRAW_COLLATERAL:
303
+ functionName = 'withdrawCollateral';
304
+ args = [marketParamsTuple, convertedAmount, pkpAddress, pkpAddress];
305
+ break;
306
+ default:
307
+ throw new Error(`Unsupported market operation: ${operation}`);
308
+ }
309
+ txHash = await (0, helpers_1.executeMorphoMarketOperation)({
310
+ provider,
311
+ pkpPublicKey,
312
+ marketAddress: contractAddress,
313
+ marketId,
314
+ functionName,
315
+ args,
316
+ chainId,
317
+ alchemyGasSponsor,
318
+ alchemyGasSponsorApiKey,
319
+ alchemyGasSponsorPolicyId,
320
+ });
321
+ }
322
+ else {
323
+ // Handle vault operations
324
+ let functionName;
325
+ let args;
326
+ switch (operation) {
327
+ case schemas_1.MorphoOperation.VAULT_DEPOSIT:
328
+ functionName = 'deposit';
329
+ args = [convertedAmount, onBehalfOf || pkpAddress];
330
+ break;
331
+ case schemas_1.MorphoOperation.VAULT_WITHDRAW:
332
+ functionName = 'withdraw';
333
+ args = [convertedAmount, pkpAddress, pkpAddress];
334
+ break;
335
+ case schemas_1.MorphoOperation.VAULT_REDEEM:
336
+ functionName = 'redeem';
337
+ args = [convertedAmount, pkpAddress, pkpAddress];
338
+ break;
339
+ default:
340
+ throw new Error(`Unsupported vault operation: ${operation}`);
341
+ }
342
+ txHash = await (0, helpers_1.executeMorphoVaultOperation)({
343
+ provider,
344
+ pkpPublicKey,
345
+ vaultAddress: contractAddress,
346
+ functionName,
347
+ args,
348
+ chainId,
349
+ alchemyGasSponsor,
350
+ alchemyGasSponsorApiKey,
351
+ alchemyGasSponsorPolicyId,
352
+ });
353
+ }
354
+ console.log('[@lit-protocol/vincent-ability-morpho/execute] Morpho operation successful', {
355
+ txHash,
356
+ operation,
357
+ contractAddress,
358
+ marketId,
359
+ amount,
360
+ });
361
+ return succeed({
362
+ txHash,
363
+ operation,
364
+ contractAddress,
365
+ marketId: isMarketOperation ? marketId : undefined,
366
+ amount,
367
+ timestamp: Date.now(),
368
+ });
369
+ }
370
+ catch (error) {
371
+ console.error('[@lit-protocol/vincent-ability-morpho/execute] Morpho operation failed', error);
372
+ return fail({
373
+ error: error instanceof Error ? error.message : 'Unknown error occurred',
374
+ });
375
+ }
376
+ },
377
+ });
378
+ //# sourceMappingURL=vincent-ability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vincent-ability.js","sourceRoot":"","sources":["../../../src/lib/vincent-ability.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "@lit-protocol/vincent-ability-morpho",
3
+ "version": "0.0.7-mma",
4
+ "publishConfig": {
5
+ "access": "public"
6
+ },
7
+ "dependencies": {
8
+ "@lit-protocol/vincent-scaffold-sdk": "^1.1.6",
9
+ "ethers": "^5.8.0",
10
+ "tslib": "2.8.1",
11
+ "zod": "^3.25.64",
12
+ "@lit-protocol/vincent-ability-sdk": "0.0.7-mma"
13
+ },
14
+ "peerDependencies": {
15
+ "@lit-protocol/vincent-app-sdk": "^0.0.7-mma"
16
+ },
17
+ "devDependencies": {
18
+ "esbuild": "^0.19.12",
19
+ "esbuild-plugin-polyfill-node": "^0.3.0",
20
+ "ipfs-only-hash": "^4.0.0",
21
+ "tsx": "^4.19.4"
22
+ },
23
+ "main": "./dist/src/index.js",
24
+ "module": "./dist/src/index.js",
25
+ "types": "./dist/src/index.d.ts",
26
+ "files": [
27
+ "dist/**",
28
+ "*.md"
29
+ ],
30
+ "scripts": {
31
+ "vault-search": "tsx examples/vault-search.ts"
32
+ }
33
+ }