@varun-ai07/covenant-mcp 1.2.3 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1056 -170
- package/dist/abis/MultiTokenEscrow.json +836 -0
- package/dist/abis/v2/AgentRegistry.json +872 -0
- package/dist/abis/v2/DisputeResolution.json +493 -0
- package/dist/abis/v2/InsurancePool.json +645 -0
- package/dist/abis/v2/ReceiptVerifier.json +394 -0
- package/dist/abis/v2/RevisionManager.json +544 -0
- package/dist/abis/v2/TaskEscrow.json +1018 -0
- package/dist/cli.js +0 -0
- package/dist/config.d.ts +13 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +84 -25
- package/dist/config.js.map +1 -1
- package/dist/lib/did.d.ts +72 -0
- package/dist/lib/did.d.ts.map +1 -0
- package/dist/lib/did.js +115 -0
- package/dist/lib/did.js.map +1 -0
- package/dist/lib/formatResponse.d.ts +33 -0
- package/dist/lib/formatResponse.d.ts.map +1 -0
- package/dist/lib/formatResponse.js +92 -0
- package/dist/lib/formatResponse.js.map +1 -0
- package/dist/lib/schemaHelpers.d.ts +11 -0
- package/dist/lib/schemaHelpers.d.ts.map +1 -0
- package/dist/lib/schemaHelpers.js +11 -0
- package/dist/lib/schemaHelpers.js.map +1 -0
- package/dist/lib/store.d.ts +10 -0
- package/dist/lib/store.d.ts.map +1 -0
- package/dist/lib/store.js +39 -0
- package/dist/lib/store.js.map +1 -0
- package/dist/lib/verify.d.ts +21 -0
- package/dist/lib/verify.d.ts.map +1 -0
- package/dist/lib/verify.js +568 -0
- package/dist/lib/verify.js.map +1 -0
- package/dist/schemas.d.ts +5 -5
- package/dist/schemas.d.ts.map +1 -1
- package/dist/server.d.ts +1 -25
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +53 -37
- package/dist/server.js.map +1 -1
- package/dist/shared-types.d.ts +67 -0
- package/dist/shared-types.d.ts.map +1 -0
- package/dist/shared-types.js +86 -0
- package/dist/shared-types.js.map +1 -0
- package/dist/tools/account-abstraction.d.ts +3 -0
- package/dist/tools/account-abstraction.d.ts.map +1 -0
- package/dist/tools/account-abstraction.js +364 -0
- package/dist/tools/account-abstraction.js.map +1 -0
- package/dist/tools/batches.d.ts.map +1 -1
- package/dist/tools/batches.js +68 -37
- package/dist/tools/batches.js.map +1 -1
- package/dist/tools/bounties.d.ts +3 -0
- package/dist/tools/bounties.d.ts.map +1 -0
- package/dist/tools/bounties.js +304 -0
- package/dist/tools/bounties.js.map +1 -0
- package/dist/tools/bridge.d.ts +3 -0
- package/dist/tools/bridge.d.ts.map +1 -0
- package/dist/tools/bridge.js +190 -0
- package/dist/tools/bridge.js.map +1 -0
- package/dist/tools/collectives.d.ts.map +1 -1
- package/dist/tools/collectives.js +74 -46
- package/dist/tools/collectives.js.map +1 -1
- package/dist/tools/covenant-help.d.ts +3 -0
- package/dist/tools/covenant-help.d.ts.map +1 -0
- package/dist/tools/covenant-help.js +321 -0
- package/dist/tools/covenant-help.js.map +1 -0
- package/dist/tools/cross-chain.d.ts +3 -0
- package/dist/tools/cross-chain.d.ts.map +1 -0
- package/dist/tools/cross-chain.js +77 -0
- package/dist/tools/cross-chain.js.map +1 -0
- package/dist/tools/disputes.d.ts.map +1 -1
- package/dist/tools/disputes.js +39 -33
- package/dist/tools/disputes.js.map +1 -1
- package/dist/tools/escrow.d.ts.map +1 -1
- package/dist/tools/escrow.js +248 -199
- package/dist/tools/escrow.js.map +1 -1
- package/dist/tools/fiat-onramp.d.ts +3 -0
- package/dist/tools/fiat-onramp.d.ts.map +1 -0
- package/dist/tools/fiat-onramp.js +108 -0
- package/dist/tools/fiat-onramp.js.map +1 -0
- package/dist/tools/governance.d.ts +3 -0
- package/dist/tools/governance.d.ts.map +1 -0
- package/dist/tools/governance.js +271 -0
- package/dist/tools/governance.js.map +1 -0
- package/dist/tools/grants.d.ts +3 -0
- package/dist/tools/grants.d.ts.map +1 -0
- package/dist/tools/grants.js +269 -0
- package/dist/tools/grants.js.map +1 -0
- package/dist/tools/insurance.d.ts.map +1 -1
- package/dist/tools/insurance.js +92 -45
- package/dist/tools/insurance.js.map +1 -1
- package/dist/tools/market.d.ts.map +1 -1
- package/dist/tools/market.js +122 -103
- package/dist/tools/market.js.map +1 -1
- package/dist/tools/matching.d.ts +3 -0
- package/dist/tools/matching.d.ts.map +1 -0
- package/dist/tools/matching.js +233 -0
- package/dist/tools/matching.js.map +1 -0
- package/dist/tools/messaging.d.ts +3 -0
- package/dist/tools/messaging.d.ts.map +1 -0
- package/dist/tools/messaging.js +159 -0
- package/dist/tools/messaging.js.map +1 -0
- package/dist/tools/multi-token.d.ts +3 -0
- package/dist/tools/multi-token.d.ts.map +1 -0
- package/dist/tools/multi-token.js +274 -0
- package/dist/tools/multi-token.js.map +1 -0
- package/dist/tools/offchain-coordinator.d.ts +3 -0
- package/dist/tools/offchain-coordinator.d.ts.map +1 -0
- package/dist/tools/offchain-coordinator.js +436 -0
- package/dist/tools/offchain-coordinator.js.map +1 -0
- package/dist/tools/protocol.d.ts.map +1 -1
- package/dist/tools/protocol.js +19 -6
- package/dist/tools/protocol.js.map +1 -1
- package/dist/tools/receipts.d.ts.map +1 -1
- package/dist/tools/receipts.js +39 -39
- package/dist/tools/receipts.js.map +1 -1
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +90 -43
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/reputation-vc.d.ts +3 -0
- package/dist/tools/reputation-vc.d.ts.map +1 -0
- package/dist/tools/reputation-vc.js +438 -0
- package/dist/tools/reputation-vc.js.map +1 -0
- package/dist/tools/revisions.d.ts +3 -0
- package/dist/tools/revisions.d.ts.map +1 -0
- package/dist/tools/revisions.js +108 -0
- package/dist/tools/revisions.js.map +1 -0
- package/dist/tools/router.d.ts +3 -0
- package/dist/tools/router.d.ts.map +1 -0
- package/dist/tools/router.js +104 -0
- package/dist/tools/router.js.map +1 -0
- package/dist/tools/streaming.d.ts +3 -0
- package/dist/tools/streaming.d.ts.map +1 -0
- package/dist/tools/streaming.js +350 -0
- package/dist/tools/streaming.js.map +1 -0
- package/dist/tools/templates.d.ts +3 -0
- package/dist/tools/templates.d.ts.map +1 -0
- package/dist/tools/templates.js +392 -0
- package/dist/tools/templates.js.map +1 -0
- package/dist/tools/training.d.ts +3 -0
- package/dist/tools/training.d.ts.map +1 -0
- package/dist/tools/training.js +304 -0
- package/dist/tools/training.js.map +1 -0
- package/dist/tools/v2-settlement.d.ts +3 -0
- package/dist/tools/v2-settlement.d.ts.map +1 -0
- package/dist/tools/v2-settlement.js +226 -0
- package/dist/tools/v2-settlement.js.map +1 -0
- package/dist/tools/verification.d.ts +3 -0
- package/dist/tools/verification.d.ts.map +1 -0
- package/dist/tools/verification.js +215 -0
- package/dist/tools/verification.js.map +1 -0
- package/dist/tools/verify-deep.d.ts +3 -0
- package/dist/tools/verify-deep.d.ts.map +1 -0
- package/dist/tools/verify-deep.js +125 -0
- package/dist/tools/verify-deep.js.map +1 -0
- package/dist/types.d.ts +16 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +4 -23
- package/dist/types.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MultiTokenEscrow MCP Tools
|
|
3
|
+
*
|
|
4
|
+
* create_task_erc20 — Create and fund a task with ERC-20 token
|
|
5
|
+
* get_accepted_tokens — List accepted ERC-20 tokens
|
|
6
|
+
* set_accepted_token — Add/remove accepted token (owner only)
|
|
7
|
+
* get_multi_task — Get task details from MultiTokenEscrow
|
|
8
|
+
*/
|
|
9
|
+
import { z } from "zod";
|
|
10
|
+
import { parseUnits, formatUnits, isAddress } from "viem";
|
|
11
|
+
import { loadAbi, CONTRACTS } from "../config.js";
|
|
12
|
+
import { executeOrPrepare, readContract } from "../handlers/wallet.js";
|
|
13
|
+
import { formatTxResult, formatReadResult } from "../handlers/transactions.js";
|
|
14
|
+
import { TASK_STATUS } from "../types.js";
|
|
15
|
+
import { ethAddress, ipfsCid, unixDeadline, taskId as taskIdSchema } from "../lib/schemaHelpers.js";
|
|
16
|
+
import { parseContractError, formatStructuredError } from "../lib/formatResponse.js";
|
|
17
|
+
const ABI = loadAbi("MultiTokenEscrow");
|
|
18
|
+
// ---- Input schemas ----
|
|
19
|
+
const createTaskERC20Schema = z.object({
|
|
20
|
+
worker: ethAddress,
|
|
21
|
+
payment: z.string().regex(/^\d+(\.\d{1,18})?$/, "Invalid token amount format"),
|
|
22
|
+
deadline: unixDeadline
|
|
23
|
+
.refine(val => {
|
|
24
|
+
const ms = val * 1000;
|
|
25
|
+
const now = Date.now();
|
|
26
|
+
return ms > now && ms < now + 365 * 24 * 60 * 60 * 1000;
|
|
27
|
+
}, { message: "Deadline must be a future timestamp within 1 year" }),
|
|
28
|
+
descriptionHash: ipfsCid,
|
|
29
|
+
tokenAddress: ethAddress,
|
|
30
|
+
decimals: z.number().int().min(0).max(18).default(18),
|
|
31
|
+
});
|
|
32
|
+
const setAcceptedTokenSchema = z.object({
|
|
33
|
+
tokenAddress: ethAddress,
|
|
34
|
+
accepted: z.boolean(),
|
|
35
|
+
});
|
|
36
|
+
// Known token addresses (Base Sepolia)
|
|
37
|
+
const KNOWN_TOKENS = {
|
|
38
|
+
"0x036CbD53842c5426634e7929541eC2318f3dCF7e": { symbol: "USDC", decimals: 6 },
|
|
39
|
+
"0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb": { symbol: "DAI", decimals: 18 },
|
|
40
|
+
"0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2": { symbol: "USDT", decimals: 6 },
|
|
41
|
+
};
|
|
42
|
+
function getMultiTokenAddress() {
|
|
43
|
+
const addr = CONTRACTS.MultiTokenEscrow;
|
|
44
|
+
if (!addr || addr === "0x0000000000000000000000000000000000000000") {
|
|
45
|
+
throw new Error("MultiTokenEscrow not deployed. Set MULTI_TOKEN_ESCROW env var.");
|
|
46
|
+
}
|
|
47
|
+
return addr;
|
|
48
|
+
}
|
|
49
|
+
// ---- Registration ----
|
|
50
|
+
export function registerMultiTokenTools(server) {
|
|
51
|
+
// 1. Create ERC20 task
|
|
52
|
+
server.tool("corven_create_task_erc20", "Create and fund a task using ERC-20 tokens (USDC, DAI, USDT). Requires prior approval.\n" +
|
|
53
|
+
"USE WHEN: You want to pay for a task with an ERC-20 stablecoin instead of ETH.\n" +
|
|
54
|
+
"REQUIRES: MultiTokenEscrow contract deployed (MULTI_TOKEN_ESCROW env var). Worker must be a registered agent. You must have approved the MultiTokenEscrow contract to spend your tokens (ERC-20 approve). Sufficient token balance.\n" +
|
|
55
|
+
"RETURNS: Transaction result with tx hash and Basescan link.\n" +
|
|
56
|
+
"COMES BEFORE: corven_submit_work (worker submits deliverables), corven_verify_task (you verify and release payment).\n" +
|
|
57
|
+
"COMES AFTER: ERC-20 approve() call on the token contract granting MultiTokenEscrow spending rights.\n" +
|
|
58
|
+
"NOTE: Token amount is human-readable (e.g. '100.50' not wei). Decimals default to 18; USDC uses 6.", {
|
|
59
|
+
worker: ethAddress,
|
|
60
|
+
payment: z.string().describe("Token amount (human-readable, e.g. '100.50')"),
|
|
61
|
+
deadline: unixDeadline,
|
|
62
|
+
descriptionHash: ipfsCid,
|
|
63
|
+
tokenAddress: ethAddress,
|
|
64
|
+
decimals: z.number().optional().default(18).describe("Token decimals (default 18, USDC=6)"),
|
|
65
|
+
}, async ({ worker, payment, deadline, descriptionHash, tokenAddress, decimals }) => {
|
|
66
|
+
try {
|
|
67
|
+
const parsed = createTaskERC20Schema.parse({
|
|
68
|
+
worker, payment, deadline, descriptionHash, tokenAddress, decimals,
|
|
69
|
+
});
|
|
70
|
+
const contractAddress = getMultiTokenAddress();
|
|
71
|
+
const paymentWei = parseUnits(parsed.payment, parsed.decimals);
|
|
72
|
+
const result = await executeOrPrepare(contractAddress, ABI, "createAndFundTaskERC20", [
|
|
73
|
+
parsed.worker,
|
|
74
|
+
paymentWei,
|
|
75
|
+
BigInt(parsed.deadline),
|
|
76
|
+
parsed.descriptionHash,
|
|
77
|
+
parsed.tokenAddress,
|
|
78
|
+
]);
|
|
79
|
+
return formatTxResult(result);
|
|
80
|
+
}
|
|
81
|
+
catch (e) {
|
|
82
|
+
const parsed = parseContractError(e);
|
|
83
|
+
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
// 2. Get accepted tokens
|
|
87
|
+
server.tool("corven_get_accepted_tokens", "Check which ERC-20 tokens are accepted by MultiTokenEscrow. Pass a token address to check if it's accepted, or omit to check common tokens.\n" +
|
|
88
|
+
"USE WHEN: You want to know which ERC-20 tokens can be used for task payments, or verify a specific token is whitelisted.\n" +
|
|
89
|
+
"REQUIRES: MultiTokenEscrow contract deployed.\n" +
|
|
90
|
+
"RETURNS: If tokenAddress given: {tokenAddress, symbol, isAccepted}. If omitted: array of common tokens (USDC, DAI, USDT) with their acceptance status.\n" +
|
|
91
|
+
"COMES BEFORE: corven_create_task_erc20 (confirm token is accepted before creating a task).\n" +
|
|
92
|
+
"COMES AFTER: Nothing — standalone read.", {
|
|
93
|
+
tokenAddress: ethAddress.optional().describe("Specific token address to check (optional)"),
|
|
94
|
+
}, async ({ tokenAddress }) => {
|
|
95
|
+
try {
|
|
96
|
+
const contractAddress = getMultiTokenAddress();
|
|
97
|
+
if (tokenAddress) {
|
|
98
|
+
if (!isAddress(tokenAddress)) {
|
|
99
|
+
return { content: [{ type: "text", text: "Invalid token address" }], isError: true };
|
|
100
|
+
}
|
|
101
|
+
const accepted = await readContract(contractAddress, ABI, "acceptedTokens", [tokenAddress]);
|
|
102
|
+
const known = KNOWN_TOKENS[tokenAddress];
|
|
103
|
+
return formatReadResult({
|
|
104
|
+
tokenAddress,
|
|
105
|
+
symbol: known?.symbol || "Unknown",
|
|
106
|
+
isAccepted: accepted,
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
// Check all common tokens
|
|
110
|
+
const results = {};
|
|
111
|
+
for (const [addr, info] of Object.entries(KNOWN_TOKENS)) {
|
|
112
|
+
const accepted = await readContract(contractAddress, ABI, "acceptedTokens", [addr]);
|
|
113
|
+
results[addr] = { symbol: info.symbol, isAccepted: !!accepted };
|
|
114
|
+
}
|
|
115
|
+
return formatReadResult(results);
|
|
116
|
+
}
|
|
117
|
+
catch (e) {
|
|
118
|
+
const parsed = parseContractError(e);
|
|
119
|
+
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
// 3. Set accepted token (owner only)
|
|
123
|
+
server.tool("corven_set_accepted_token", "Add or remove an ERC-20 token from the accepted tokens list. Owner-only operation.\n" +
|
|
124
|
+
"USE WHEN: You are the contract owner and need to whitelist or blacklist an ERC-20 token for task payments.\n" +
|
|
125
|
+
"REQUIRES: Caller must be the MultiTokenEscrow contract owner. MultiTokenEscrow must be deployed.\n" +
|
|
126
|
+
"RETURNS: Transaction result with tx hash and Basescan link.\n" +
|
|
127
|
+
"COMES BEFORE: corven_create_task_erc20 (token must be accepted before tasks can use it).\n" +
|
|
128
|
+
"COMES AFTER: MultiTokenEscrow deployment.\n" +
|
|
129
|
+
"NOTE: Owner-only operation. Passing accepted=false removes the token from the whitelist.", {
|
|
130
|
+
tokenAddress: ethAddress,
|
|
131
|
+
accepted: z.boolean().describe("true to accept, false to remove"),
|
|
132
|
+
}, async ({ tokenAddress, accepted }) => {
|
|
133
|
+
try {
|
|
134
|
+
const parsed = setAcceptedTokenSchema.parse({ tokenAddress, accepted });
|
|
135
|
+
const contractAddress = getMultiTokenAddress();
|
|
136
|
+
const result = await executeOrPrepare(contractAddress, ABI, "setAcceptedToken", [parsed.tokenAddress, parsed.accepted]);
|
|
137
|
+
return formatTxResult(result);
|
|
138
|
+
}
|
|
139
|
+
catch (e) {
|
|
140
|
+
const parsed = parseContractError(e);
|
|
141
|
+
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
// 4. Get multi-token task
|
|
145
|
+
server.tool("corven_get_multi_task", "Get task details from MultiTokenEscrow by task ID.\n" +
|
|
146
|
+
"USE WHEN: You need to inspect the state of a task funded with ERC-20 tokens.\n" +
|
|
147
|
+
"REQUIRES: MultiTokenEscrow deployed. Valid task ID (returned by corven_create_task_erc20).\n" +
|
|
148
|
+
"RETURNS: Task details from the MultiTokenEscrow contract.\n" +
|
|
149
|
+
"COMES BEFORE: corven_verify_task or corven_dispute_task (check task state before acting).\n" +
|
|
150
|
+
"COMES AFTER: corven_create_task_erc20.", {
|
|
151
|
+
taskId: taskIdSchema,
|
|
152
|
+
}, async ({ taskId }) => {
|
|
153
|
+
try {
|
|
154
|
+
const contractAddress = getMultiTokenAddress();
|
|
155
|
+
const task = await readContract(contractAddress, ABI, "getTask", [BigInt(taskId)]);
|
|
156
|
+
if (!task) {
|
|
157
|
+
return { content: [{ type: "text", text: `Task ${taskId} not found` }], isError: true };
|
|
158
|
+
}
|
|
159
|
+
const [client, worker, payment, deadline, descriptionHash, deliverableHash, status, createdAt, completedAt, token] = task;
|
|
160
|
+
const isEth = token === "0x0000000000000000000000000000000000000000";
|
|
161
|
+
const decimals = isEth ? 18 : (KNOWN_TOKENS[token]?.decimals ?? 18);
|
|
162
|
+
const symbol = isEth ? "ETH" : (KNOWN_TOKENS[token]?.symbol ?? "Unknown");
|
|
163
|
+
return formatReadResult({
|
|
164
|
+
taskId,
|
|
165
|
+
client,
|
|
166
|
+
worker,
|
|
167
|
+
payment: formatUnits(payment, decimals),
|
|
168
|
+
symbol,
|
|
169
|
+
deadline: Number(deadline),
|
|
170
|
+
descriptionHash,
|
|
171
|
+
deliverableHash,
|
|
172
|
+
status: TASK_STATUS[status] || `Unknown(${status})`,
|
|
173
|
+
statusCode: status,
|
|
174
|
+
createdAt: Number(createdAt),
|
|
175
|
+
completedAt: Number(completedAt),
|
|
176
|
+
token,
|
|
177
|
+
isNativeETH: isEth,
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
catch (e) {
|
|
181
|
+
const parsed = parseContractError(e);
|
|
182
|
+
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
// 5. Get task count
|
|
186
|
+
server.tool("corven_get_multi_task_count", "Get total number of tasks in MultiTokenEscrow.\n" +
|
|
187
|
+
"USE WHEN: You need to know how many ERC-20 funded tasks exist, or determine the next task ID.\n" +
|
|
188
|
+
"REQUIRES: MultiTokenEscrow deployed.\n" +
|
|
189
|
+
"RETURNS: {taskCount} with the total number of tasks.\n" +
|
|
190
|
+
"COMES BEFORE: corven_get_multi_task (use count-1 as the latest task ID).\n" +
|
|
191
|
+
"COMES AFTER: Nothing — standalone read.", {}, async () => {
|
|
192
|
+
try {
|
|
193
|
+
const contractAddress = getMultiTokenAddress();
|
|
194
|
+
const count = await readContract(contractAddress, ABI, "taskCounter", []);
|
|
195
|
+
return formatReadResult({ taskCount: Number(count) });
|
|
196
|
+
}
|
|
197
|
+
catch (e) {
|
|
198
|
+
const parsed = parseContractError(e);
|
|
199
|
+
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
// 6. Submit work on multi-token task
|
|
203
|
+
server.tool("corven_submit_multi_work", "Submit deliverable hash for a MultiTokenEscrow task. Only assigned worker can call.\n" +
|
|
204
|
+
"USE WHEN: You are the assigned worker and have completed work on an ERC-20 funded task.\n" +
|
|
205
|
+
"REQUIRES: Task must be in InProgress status. Caller must be the assigned worker. MultiTokenEscrow deployed.\n" +
|
|
206
|
+
"RETURNS: Transaction result with tx hash and Basescan link.\n" +
|
|
207
|
+
"COMES BEFORE: corven_verify_multi_task (client verifies your deliverable and releases payment).\n" +
|
|
208
|
+
"COMES AFTER: corven_create_task_erc20 (task must exist and be assigned to you).\n" +
|
|
209
|
+
"NOTE: deliverableHash is typically an IPFS CID of your completed work.", {
|
|
210
|
+
taskId: taskIdSchema,
|
|
211
|
+
deliverableHash: ipfsCid,
|
|
212
|
+
}, async ({ taskId, deliverableHash }) => {
|
|
213
|
+
try {
|
|
214
|
+
const contractAddress = getMultiTokenAddress();
|
|
215
|
+
const result = await executeOrPrepare(contractAddress, ABI, "submitWork", [BigInt(taskId), deliverableHash]);
|
|
216
|
+
return formatTxResult(result);
|
|
217
|
+
}
|
|
218
|
+
catch (e) {
|
|
219
|
+
const parsed = parseContractError(e);
|
|
220
|
+
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
221
|
+
}
|
|
222
|
+
});
|
|
223
|
+
// 7. Verify multi-token task
|
|
224
|
+
server.tool("corven_verify_multi_task", "Verify a submitted MultiTokenEscrow task. Only the task client can call. Releases payment on success.\n" +
|
|
225
|
+
"USE WHEN: You are the task client and the worker has submitted a deliverable for an ERC-20 funded task.\n" +
|
|
226
|
+
"REQUIRES: Task must be in Submitted status. Caller must be the task client. MultiTokenEscrow deployed.\n" +
|
|
227
|
+
"RETURNS: Transaction result with tx hash and Basescan link. On success, tokens transfer to worker. On rejection, tokens refund to client.\n" +
|
|
228
|
+
"COMES BEFORE: Nothing — this is the final step of the task lifecycle.\n" +
|
|
229
|
+
"COMES AFTER: corven_submit_multi_work (worker must submit deliverable before you can verify).\n" +
|
|
230
|
+
"NOTE: success=true releases payment to worker. success=false refunds client and marks task as Rejected.", {
|
|
231
|
+
taskId: taskIdSchema,
|
|
232
|
+
success: z.boolean().describe("true = approve and pay worker, false = reject and refund client"),
|
|
233
|
+
}, async ({ taskId, success }) => {
|
|
234
|
+
try {
|
|
235
|
+
const contractAddress = getMultiTokenAddress();
|
|
236
|
+
const result = await executeOrPrepare(contractAddress, ABI, "verifyTask", [BigInt(taskId), success]);
|
|
237
|
+
return formatTxResult(result);
|
|
238
|
+
}
|
|
239
|
+
catch (e) {
|
|
240
|
+
const parsed = parseContractError(e);
|
|
241
|
+
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
242
|
+
}
|
|
243
|
+
});
|
|
244
|
+
// 8. Get escrowed token balance
|
|
245
|
+
server.tool("corven_get_escrowed_balance", "Get total escrowed balance for a specific ERC-20 token in MultiTokenEscrow.\n" +
|
|
246
|
+
"USE WHEN: You want to check how much of a specific ERC-20 token is currently held in escrow across all tasks.\n" +
|
|
247
|
+
"REQUIRES: MultiTokenEscrow deployed. Valid token address.\n" +
|
|
248
|
+
"RETURNS: {tokenAddress, symbol, balance, balanceHuman} with the total escrowed amount.\n" +
|
|
249
|
+
"COMES BEFORE: Financial reporting or liquidity checks.\n" +
|
|
250
|
+
"COMES AFTER: Nothing — standalone read.", {
|
|
251
|
+
tokenAddress: ethAddress,
|
|
252
|
+
}, async ({ tokenAddress }) => {
|
|
253
|
+
try {
|
|
254
|
+
if (!isAddress(tokenAddress)) {
|
|
255
|
+
return { content: [{ type: "text", text: "Invalid token address" }], isError: true };
|
|
256
|
+
}
|
|
257
|
+
const contractAddress = getMultiTokenAddress();
|
|
258
|
+
const balance = await readContract(contractAddress, ABI, "escrowedTokenBalances", [tokenAddress]);
|
|
259
|
+
const known = KNOWN_TOKENS[tokenAddress];
|
|
260
|
+
const decimals = known?.decimals ?? 18;
|
|
261
|
+
return formatReadResult({
|
|
262
|
+
tokenAddress,
|
|
263
|
+
symbol: known?.symbol || "Unknown",
|
|
264
|
+
balance: formatUnits(balance, decimals),
|
|
265
|
+
balanceWei: balance.toString(),
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
catch (e) {
|
|
269
|
+
const parsed = parseContractError(e);
|
|
270
|
+
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
271
|
+
}
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
//# sourceMappingURL=multi-token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multi-token.js","sourceRoot":"","sources":["../../src/tools/multi-token.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"offchain-coordinator.d.ts","sourceRoot":"","sources":["../../src/tools/offchain-coordinator.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAiLzE,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAmWxE"}
|