@lit-protocol/vincent-ability-erc20-transfer 0.0.1
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/CONTRIBUTING.md +84 -0
- package/README.md +271 -0
- package/dist/CONTRIBUTING.md +84 -0
- package/dist/README.md +271 -0
- package/dist/package.json +31 -0
- package/dist/src/generated/lit-action.js +9 -0
- package/dist/src/generated/vincent-ability-metadata.json +3 -0
- package/dist/src/generated/vincent-bundled-ability.d.ts +1122 -0
- package/dist/src/generated/vincent-bundled-ability.d.ts.map +1 -0
- package/dist/src/generated/vincent-bundled-ability.js +15 -0
- package/dist/src/generated/vincent-bundled-ability.js.map +1 -0
- package/dist/src/generated/vincent-bundled-ability.ts +13 -0
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +6 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/lib/helpers/commit-allowed-policies.d.ts +15 -0
- package/dist/src/lib/helpers/commit-allowed-policies.d.ts.map +1 -0
- package/dist/src/lib/helpers/commit-allowed-policies.js +37 -0
- package/dist/src/lib/helpers/commit-allowed-policies.js.map +1 -0
- package/dist/src/lib/helpers/execute-operation.d.ts +17 -0
- package/dist/src/lib/helpers/execute-operation.d.ts.map +1 -0
- package/dist/src/lib/helpers/execute-operation.js +54 -0
- package/dist/src/lib/helpers/execute-operation.js.map +1 -0
- package/dist/src/lib/helpers/index.d.ts +31 -0
- package/dist/src/lib/helpers/index.d.ts.map +1 -0
- package/dist/src/lib/helpers/index.js +80 -0
- package/dist/src/lib/helpers/index.js.map +1 -0
- package/dist/src/lib/lit-action.d.ts +2 -0
- package/dist/src/lib/lit-action.d.ts.map +1 -0
- package/dist/src/lib/lit-action.js +16 -0
- package/dist/src/lib/lit-action.js.map +1 -0
- package/dist/src/lib/schemas.d.ts +97 -0
- package/dist/src/lib/schemas.d.ts.map +1 -0
- package/dist/src/lib/schemas.js +73 -0
- package/dist/src/lib/schemas.js.map +1 -0
- package/dist/src/lib/vincent-ability.d.ts +1119 -0
- package/dist/src/lib/vincent-ability.d.ts.map +1 -0
- package/dist/src/lib/vincent-ability.js +163 -0
- package/dist/src/lib/vincent-ability.js.map +1 -0
- package/package.json +30 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vincent-ability.d.ts","sourceRoot":"","sources":["../../../src/lib/vincent-ability.ts"],"names":[],"mappings":"AA4BA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsPzB,CAAC"}
|
|
@@ -0,0 +1,163 @@
|
|
|
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 vincent_policy_send_counter_1 = require("@lit-protocol/vincent-policy-send-counter");
|
|
6
|
+
const ethers_1 = require("ethers");
|
|
7
|
+
const helpers_1 = require("./helpers");
|
|
8
|
+
const commit_allowed_policies_1 = require("./helpers/commit-allowed-policies");
|
|
9
|
+
const execute_operation_1 = require("./helpers/execute-operation");
|
|
10
|
+
const schemas_1 = require("./schemas");
|
|
11
|
+
const SendLimitPolicy = (0, vincent_ability_sdk_1.createVincentAbilityPolicy)({
|
|
12
|
+
abilityParamsSchema: schemas_1.abilityParamsSchema,
|
|
13
|
+
bundledVincentPolicy: vincent_policy_send_counter_1.bundledVincentPolicy,
|
|
14
|
+
abilityParameterMappings: {
|
|
15
|
+
to: 'to',
|
|
16
|
+
amount: 'amount',
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
exports.vincentAbility = (0, vincent_ability_sdk_1.createVincentAbility)({
|
|
20
|
+
packageName: '@lit-protocol/vincent-ability-erc20-transfer',
|
|
21
|
+
abilityDescription: 'Ability to transfer ERC20 tokens with a limit on how many transfers are allowed in a time window',
|
|
22
|
+
abilityParamsSchema: schemas_1.abilityParamsSchema,
|
|
23
|
+
supportedPolicies: (0, vincent_ability_sdk_1.supportedPoliciesForAbility)([SendLimitPolicy]),
|
|
24
|
+
precheckSuccessSchema: schemas_1.precheckSuccessSchema,
|
|
25
|
+
precheckFailSchema: schemas_1.precheckFailSchema,
|
|
26
|
+
executeSuccessSchema: schemas_1.executeSuccessSchema,
|
|
27
|
+
executeFailSchema: schemas_1.executeFailSchema,
|
|
28
|
+
precheck: async ({ abilityParams }, { succeed, fail, delegation }) => {
|
|
29
|
+
console.log('[@agentic-ai/vincent-ability-erc20-transfer/precheck] 🔍 Starting validation');
|
|
30
|
+
console.log('[@agentic-ai/vincent-ability-erc20-transfer/precheck] 📋 params:', {
|
|
31
|
+
abilityParams,
|
|
32
|
+
});
|
|
33
|
+
const { to, amount, tokenAddress, rpcUrl, alchemyGasSponsor, alchemyGasSponsorApiKey, alchemyGasSponsorPolicyId, } = abilityParams;
|
|
34
|
+
// Validate EIP-7702 gas sponsorship
|
|
35
|
+
if (alchemyGasSponsor && (!alchemyGasSponsorApiKey || !alchemyGasSponsorPolicyId)) {
|
|
36
|
+
return fail({
|
|
37
|
+
error: '[@lit-protocol/vincent-ability-erc20-transfer/precheck] Alchemy gas sponsor is enabled, but missing Alchemy API key or policy ID',
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
// Validate RPC URL
|
|
41
|
+
if (!rpcUrl) {
|
|
42
|
+
return fail({
|
|
43
|
+
error: '[@lit-protocol/vincent-ability-erc20-transfer/precheck] RPC URL is required for precheck',
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
// Check if the sender has enough tokens
|
|
47
|
+
const provider = new ethers_1.ethers.providers.JsonRpcProvider(rpcUrl);
|
|
48
|
+
const erc20Contract = (0, helpers_1.getErc20Contract)(provider, tokenAddress);
|
|
49
|
+
const tokenDecimals = await erc20Contract.decimals();
|
|
50
|
+
console.log('[@agentic-ai/vincent-ability-erc20-transfer/precheck] 🔢 Using token decimals:', tokenDecimals);
|
|
51
|
+
const tokenAmountInSmallestUnit = ethers_1.ethers.utils.parseUnits(amount, tokenDecimals);
|
|
52
|
+
console.log('[@agentic-ai/vincent-ability-erc20-transfer/precheck] 💰 Transfer amount in smallest unit:', tokenAmountInSmallestUnit.toString());
|
|
53
|
+
// Check token balance
|
|
54
|
+
const userBalance = await erc20Contract.balanceOf(delegation.delegatorPkpInfo.ethAddress);
|
|
55
|
+
console.log('[@agentic-ai/vincent-ability-erc20-transfer/precheck] 💰 User balance in smallest unit:', ethers_1.ethers.utils.formatUnits(userBalance, tokenDecimals));
|
|
56
|
+
if (userBalance.lt(tokenAmountInSmallestUnit)) {
|
|
57
|
+
return fail({
|
|
58
|
+
error: `[@agentic-ai/vincent-ability-erc20-transfer/precheck] ❌ Insufficient token balance. Need ${ethers_1.ethers.utils.formatUnits(tokenAmountInSmallestUnit, tokenDecimals)} tokens, but only have ${ethers_1.ethers.utils.formatUnits(userBalance, tokenDecimals)} tokens`,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
// Estimate transfer gas and check there is enough
|
|
62
|
+
const estimatedGas = await erc20Contract.estimateGas.transfer(to, tokenAmountInSmallestUnit);
|
|
63
|
+
console.log('[@agentic-ai/vincent-ability-erc20-transfer/precheck] 💰 Estimated gas:', estimatedGas.toString());
|
|
64
|
+
const nativeBalance = await provider.getBalance(delegation.delegatorPkpInfo.ethAddress);
|
|
65
|
+
if (!alchemyGasSponsor && nativeBalance.lt(estimatedGas)) {
|
|
66
|
+
return fail({
|
|
67
|
+
error: `[@agentic-ai/vincent-ability-erc20-transfer/precheck] ❌ Insufficient gas for ERC20 transfer. Need ${estimatedGas.toString()} gas, but only have ${nativeBalance.toString()} gas`,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
// Precheck succeeded
|
|
71
|
+
const successResult = {
|
|
72
|
+
addressValid: true,
|
|
73
|
+
amountValid: true,
|
|
74
|
+
tokenAddressValid: true,
|
|
75
|
+
userBalance: userBalance.toString(),
|
|
76
|
+
estimatedGas: estimatedGas.toString(),
|
|
77
|
+
};
|
|
78
|
+
console.log('[@agentic-ai/vincent-ability-erc20-transfer/precheck] ✅ Success result:', successResult);
|
|
79
|
+
const successResponse = succeed(successResult);
|
|
80
|
+
console.log('[ERC20TransferAbility/precheck] ✅ Success response:', JSON.stringify(successResponse, null, 2));
|
|
81
|
+
return successResponse;
|
|
82
|
+
},
|
|
83
|
+
execute: async ({ abilityParams }, { succeed, fail, delegation, policiesContext }) => {
|
|
84
|
+
try {
|
|
85
|
+
const { to, amount, tokenAddress, chain, alchemyGasSponsor, alchemyGasSponsorApiKey, alchemyGasSponsorPolicyId, } = abilityParams;
|
|
86
|
+
console.log('[@agentic-ai/vincent-ability-erc20-transfer/execute] 🚀 Executing ERC-20 Transfer Ability', {
|
|
87
|
+
to,
|
|
88
|
+
amount,
|
|
89
|
+
tokenAddress,
|
|
90
|
+
chain,
|
|
91
|
+
});
|
|
92
|
+
if (alchemyGasSponsor && (!alchemyGasSponsorApiKey || !alchemyGasSponsorPolicyId)) {
|
|
93
|
+
return fail({
|
|
94
|
+
error: '[@lit-protocol/vincent-ability-erc20-transfer/execute] Alchemy gas sponsor is enabled, but missing Alchemy API key or policy ID',
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
let provider;
|
|
98
|
+
try {
|
|
99
|
+
provider = new ethers_1.ethers.providers.JsonRpcProvider(await Lit.Actions.getRpcUrl({ chain }));
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
console.error('[@agentic-ai/vincent-ability-erc20-transfer/execute] Provider error:', error);
|
|
103
|
+
throw new Error('Unable to obtain blockchain provider for transfer operations');
|
|
104
|
+
}
|
|
105
|
+
const { chainId } = await provider.getNetwork();
|
|
106
|
+
const erc20Contract = (0, helpers_1.getErc20Contract)(provider, tokenAddress);
|
|
107
|
+
console.log('[@agentic-ai/vincent-ability-erc20-transfer/execute] ⛓️ Using Chain:', chain);
|
|
108
|
+
// Get decimals
|
|
109
|
+
const tokenDecimals = await erc20Contract.decimals();
|
|
110
|
+
console.log('[@agentic-ai/vincent-ability-erc20-transfer/execute] 🔢 Using token decimals:', tokenDecimals);
|
|
111
|
+
// Parse amount to token units using decimals
|
|
112
|
+
const tokenAmountInSmallestUnit = ethers_1.ethers.utils.parseUnits(amount, tokenDecimals);
|
|
113
|
+
console.log('[@agentic-ai/vincent-ability-erc20-transfer/execute] 💰 Transfer amount in smallest unit:', tokenAmountInSmallestUnit.toString());
|
|
114
|
+
// Prepare contract call data for ERC-20 transfer
|
|
115
|
+
const contractCallData = {
|
|
116
|
+
provider,
|
|
117
|
+
pkpPublicKey: delegation.delegatorPkpInfo.publicKey,
|
|
118
|
+
callerAddress: delegation.delegatorPkpInfo.ethAddress,
|
|
119
|
+
contractAddress: tokenAddress,
|
|
120
|
+
abi: helpers_1.ERC20_ABI,
|
|
121
|
+
functionName: 'transfer',
|
|
122
|
+
args: [to, tokenAmountInSmallestUnit],
|
|
123
|
+
chainId,
|
|
124
|
+
alchemyGasSponsor,
|
|
125
|
+
alchemyGasSponsorApiKey,
|
|
126
|
+
alchemyGasSponsorPolicyId,
|
|
127
|
+
};
|
|
128
|
+
console.log('[@agentic-ai/vincent-ability-erc20-transfer/execute] 🔧 Full contractCallData:', JSON.stringify(contractCallData, null, 2));
|
|
129
|
+
console.log('[@agentic-ai/vincent-ability-erc20-transfer/execute] 🚀 Attempting contract call...');
|
|
130
|
+
// Commit policy changes to the blockchain. We do this before to prioritize updating the policy over the transfer transaction
|
|
131
|
+
const policyCommitResults = await (0, commit_allowed_policies_1.commitAllowedPolicies)(policiesContext, '[@agentic-ai/vincent-ability-erc20-transfer/execute]');
|
|
132
|
+
console.log('[@agentic-ai/vincent-ability-erc20-transfer/execute] ✅ Policy commit results:', policyCommitResults);
|
|
133
|
+
// Execute the ERC-20 transfer using laUtils
|
|
134
|
+
const txHash = await (0, execute_operation_1.executeOperation)(contractCallData);
|
|
135
|
+
console.log('[@agentic-ai/vincent-ability-erc20-transfer/execute] ✅ Contract call completed, txHash:', txHash);
|
|
136
|
+
console.log('[@agentic-ai/vincent-ability-erc20-transfer/execute] ✅ ERC-20 transfer successful', {
|
|
137
|
+
txHash,
|
|
138
|
+
to,
|
|
139
|
+
amount,
|
|
140
|
+
tokenAddress,
|
|
141
|
+
});
|
|
142
|
+
return succeed({
|
|
143
|
+
txHash,
|
|
144
|
+
to,
|
|
145
|
+
amount,
|
|
146
|
+
tokenAddress,
|
|
147
|
+
timestamp: Date.now(),
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
catch (error) {
|
|
151
|
+
console.error('[@agentic-ai/vincent-ability-erc20-transfer/execute] ❌ ERC-20 transfer failed', error);
|
|
152
|
+
// Provide more specific error messages for common ERC-20 failures
|
|
153
|
+
let errorMessage = '[@agentic-ai/vincent-ability-erc20-transfer/execute] ❌ Unknown error occurred';
|
|
154
|
+
if (error instanceof Error) {
|
|
155
|
+
errorMessage = `[@agentic-ai/vincent-ability-erc20-transfer/execute] ❌ ${error.message}`;
|
|
156
|
+
}
|
|
157
|
+
return fail({
|
|
158
|
+
error: errorMessage,
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
});
|
|
163
|
+
//# 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,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@lit-protocol/vincent-ability-erc20-transfer",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"publishConfig": {
|
|
5
|
+
"access": "public"
|
|
6
|
+
},
|
|
7
|
+
"dependencies": {
|
|
8
|
+
"@lit-protocol/vincent-scaffold-sdk": "^1.1.7",
|
|
9
|
+
"ethers": "^5.8.0",
|
|
10
|
+
"tslib": "2.8.1",
|
|
11
|
+
"zod": "^3.25.64",
|
|
12
|
+
"@lit-protocol/vincent-ability-sdk": "2.0.0",
|
|
13
|
+
"@lit-protocol/vincent-policy-send-counter": "0.1.0"
|
|
14
|
+
},
|
|
15
|
+
"peerDependencies": {
|
|
16
|
+
"@lit-protocol/vincent-app-sdk": "^2.0.0"
|
|
17
|
+
},
|
|
18
|
+
"devDependencies": {
|
|
19
|
+
"esbuild": "^0.19.12",
|
|
20
|
+
"esbuild-plugin-polyfill-node": "^0.3.0",
|
|
21
|
+
"ipfs-only-hash": "^4.0.0"
|
|
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
|
+
}
|