@paylobster/mcp-server 1.6.0 → 1.7.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/README.md +147 -228
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +86 -0
- package/dist/cli.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -19
- package/dist/index.js.map +1 -1
- package/dist/resources/index.d.ts +9 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +159 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/server.d.ts +3 -6
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +1455 -114
- package/dist/server.js.map +1 -1
- package/dist/tools/balance.d.ts +5 -16
- package/dist/tools/balance.d.ts.map +1 -1
- package/dist/tools/balance.js +26 -44
- package/dist/tools/balance.js.map +1 -1
- package/dist/tools/bridge.d.ts +142 -0
- package/dist/tools/bridge.d.ts.map +1 -0
- package/dist/tools/bridge.js +121 -0
- package/dist/tools/bridge.js.map +1 -0
- package/dist/tools/cascade.d.ts +59 -0
- package/dist/tools/cascade.d.ts.map +1 -0
- package/dist/tools/cascade.js +119 -0
- package/dist/tools/cascade.js.map +1 -0
- package/dist/tools/compliance.d.ts +36 -0
- package/dist/tools/compliance.d.ts.map +1 -0
- package/dist/tools/compliance.js +57 -0
- package/dist/tools/compliance.js.map +1 -0
- package/dist/tools/convenience.d.ts +121 -0
- package/dist/tools/convenience.d.ts.map +1 -0
- package/dist/tools/convenience.js +331 -0
- package/dist/tools/convenience.js.map +1 -0
- package/dist/tools/credit.d.ts +46 -0
- package/dist/tools/credit.d.ts.map +1 -0
- package/dist/tools/credit.js +102 -0
- package/dist/tools/credit.js.map +1 -0
- package/dist/tools/disputes.d.ts +71 -0
- package/dist/tools/disputes.d.ts.map +1 -0
- package/dist/tools/disputes.js +121 -0
- package/dist/tools/disputes.js.map +1 -0
- package/dist/tools/escrow.d.ts +90 -31
- package/dist/tools/escrow.d.ts.map +1 -1
- package/dist/tools/escrow.js +215 -98
- package/dist/tools/escrow.js.map +1 -1
- package/dist/tools/intent.d.ts +78 -0
- package/dist/tools/intent.d.ts.map +1 -0
- package/dist/tools/intent.js +192 -0
- package/dist/tools/intent.js.map +1 -0
- package/dist/tools/investment.d.ts +196 -0
- package/dist/tools/investment.d.ts.map +1 -0
- package/dist/tools/investment.js +415 -0
- package/dist/tools/investment.js.map +1 -0
- package/dist/tools/links.d.ts +41 -0
- package/dist/tools/links.d.ts.map +1 -0
- package/dist/tools/links.js +78 -0
- package/dist/tools/links.js.map +1 -0
- package/dist/tools/portfolio.d.ts +44 -0
- package/dist/tools/portfolio.d.ts.map +1 -0
- package/dist/tools/portfolio.js +166 -0
- package/dist/tools/portfolio.js.map +1 -0
- package/dist/tools/price-alerts.d.ts +52 -0
- package/dist/tools/price-alerts.d.ts.map +1 -0
- package/dist/tools/price-alerts.js +78 -0
- package/dist/tools/price-alerts.js.map +1 -0
- package/dist/tools/refunds.d.ts +32 -0
- package/dist/tools/refunds.d.ts.map +1 -0
- package/dist/tools/refunds.js +75 -0
- package/dist/tools/refunds.js.map +1 -0
- package/dist/tools/reputation.d.ts +49 -15
- package/dist/tools/reputation.d.ts.map +1 -1
- package/dist/tools/reputation.js +107 -45
- package/dist/tools/reputation.js.map +1 -1
- package/dist/tools/revenue.d.ts +42 -0
- package/dist/tools/revenue.d.ts.map +1 -0
- package/dist/tools/revenue.js +67 -0
- package/dist/tools/revenue.js.map +1 -0
- package/dist/tools/search.d.ts +54 -30
- package/dist/tools/search.d.ts.map +1 -1
- package/dist/tools/search.js +85 -122
- package/dist/tools/search.js.map +1 -1
- package/dist/tools/streaming.d.ts +60 -0
- package/dist/tools/streaming.d.ts.map +1 -0
- package/dist/tools/streaming.js +163 -0
- package/dist/tools/streaming.js.map +1 -0
- package/dist/tools/swap-smart.d.ts +30 -0
- package/dist/tools/swap-smart.d.ts.map +1 -0
- package/dist/tools/swap-smart.js +135 -0
- package/dist/tools/swap-smart.js.map +1 -0
- package/dist/tools/swap.d.ts +93 -0
- package/dist/tools/swap.d.ts.map +1 -0
- package/dist/tools/swap.js +150 -0
- package/dist/tools/swap.js.map +1 -0
- package/dist/tools/treasury.d.ts +267 -0
- package/dist/tools/treasury.d.ts.map +1 -0
- package/dist/tools/treasury.js +722 -0
- package/dist/tools/treasury.js.map +1 -0
- package/dist/tools/trust-graph.d.ts +105 -0
- package/dist/tools/trust-graph.d.ts.map +1 -0
- package/dist/tools/trust-graph.js +232 -0
- package/dist/tools/trust-graph.js.map +1 -0
- package/dist/tools/webhooks.d.ts +60 -0
- package/dist/tools/webhooks.d.ts.map +1 -0
- package/dist/tools/webhooks.js +133 -0
- package/dist/tools/webhooks.js.map +1 -0
- package/dist/types/index.d.ts +84 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/{lib/types.js → types/index.js} +1 -1
- package/dist/types/index.js.map +1 -0
- package/dist/utils/contracts.d.ts +553 -0
- package/dist/utils/contracts.d.ts.map +1 -0
- package/dist/utils/contracts.js +403 -0
- package/dist/utils/contracts.js.map +1 -0
- package/package.json +11 -20
- package/BUILD_SUMMARY.md +0 -294
- package/CHANGELOG.md +0 -77
- package/COMPLETION_REPORT.md +0 -284
- package/INTEGRATION.md +0 -286
- package/QUICKSTART.md +0 -226
- package/dist/lib/config.d.ts +0 -7
- package/dist/lib/config.d.ts.map +0 -1
- package/dist/lib/config.js +0 -16
- package/dist/lib/config.js.map +0 -1
- package/dist/lib/contracts.d.ts +0 -15
- package/dist/lib/contracts.d.ts.map +0 -1
- package/dist/lib/contracts.js +0 -148
- package/dist/lib/contracts.js.map +0 -1
- package/dist/lib/types.d.ts +0 -39
- package/dist/lib/types.d.ts.map +0 -1
- package/dist/lib/types.js.map +0 -1
- package/dist/resources/agent.d.ts +0 -3
- package/dist/resources/agent.d.ts.map +0 -1
- package/dist/resources/agent.js +0 -36
- package/dist/resources/agent.js.map +0 -1
- package/dist/resources/escrow.d.ts +0 -3
- package/dist/resources/escrow.d.ts.map +0 -1
- package/dist/resources/escrow.js +0 -33
- package/dist/resources/escrow.js.map +0 -1
- package/dist/resources/services.d.ts +0 -2
- package/dist/resources/services.d.ts.map +0 -1
- package/dist/resources/services.js +0 -55
- package/dist/resources/services.js.map +0 -1
- package/dist/tools/agent.d.ts +0 -17
- package/dist/tools/agent.d.ts.map +0 -1
- package/dist/tools/agent.js +0 -51
- package/dist/tools/agent.js.map +0 -1
- package/examples/test-server.ts +0 -36
- package/examples/test-tools.ts +0 -64
- package/src/__tests__/server.test.ts +0 -24
- package/src/index.ts +0 -24
- package/src/lib/config.ts +0 -22
- package/src/lib/contracts.ts +0 -164
- package/src/lib/types.ts +0 -44
- package/src/resources/agent.ts +0 -40
- package/src/resources/escrow.ts +0 -35
- package/src/resources/services.ts +0 -53
- package/src/server.ts +0 -190
- package/src/tools/agent.ts +0 -56
- package/src/tools/balance.ts +0 -61
- package/src/tools/escrow.ts +0 -142
- package/src/tools/reputation.ts +0 -69
- package/src/tools/search.ts +0 -148
- package/tsconfig.json +0 -20
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.releaseCascadeLevelSchema = exports.createCascadeSchema = void 0;
|
|
4
|
+
exports.createCascade = createCascade;
|
|
5
|
+
exports.releaseCascadeLevel = releaseCascadeLevel;
|
|
6
|
+
const zod_1 = require("zod");
|
|
7
|
+
const contracts_1 = require("../utils/contracts");
|
|
8
|
+
exports.createCascadeSchema = zod_1.z.object({
|
|
9
|
+
levels: zod_1.z.array(zod_1.z.object({
|
|
10
|
+
recipient: zod_1.z.string().describe('Recipient address'),
|
|
11
|
+
amount: zod_1.z.string().describe('Amount in USDC'),
|
|
12
|
+
releaseCondition: zod_1.z.string().describe('Condition for release'),
|
|
13
|
+
})).describe('Cascade levels in order'),
|
|
14
|
+
metadata: zod_1.z.record(zod_1.z.any()).optional(),
|
|
15
|
+
});
|
|
16
|
+
exports.releaseCascadeLevelSchema = zod_1.z.object({
|
|
17
|
+
cascadeId: zod_1.z.string().describe('Cascade ID'),
|
|
18
|
+
level: zod_1.z.number().describe('Level to release (0-indexed)'),
|
|
19
|
+
});
|
|
20
|
+
async function createCascade(params, client) {
|
|
21
|
+
const account = client.getAccount();
|
|
22
|
+
const walletClient = client.getWalletClient();
|
|
23
|
+
const publicClient = client.getPublicClient();
|
|
24
|
+
const contracts = client.getContracts();
|
|
25
|
+
try {
|
|
26
|
+
// Parse recipients and amounts
|
|
27
|
+
const recipients = [];
|
|
28
|
+
const amounts = [];
|
|
29
|
+
let totalAmount = BigInt(0);
|
|
30
|
+
for (const level of params.levels) {
|
|
31
|
+
recipients.push(level.recipient);
|
|
32
|
+
const amount = client.parseUSDC(level.amount);
|
|
33
|
+
amounts.push(amount);
|
|
34
|
+
totalAmount += amount;
|
|
35
|
+
}
|
|
36
|
+
// Step 1: Approve USDC spending
|
|
37
|
+
const approveHash = await walletClient.writeContract({
|
|
38
|
+
address: contracts.usdc,
|
|
39
|
+
abi: contracts_1.USDC_ABI,
|
|
40
|
+
functionName: 'approve',
|
|
41
|
+
args: [contracts.cascade, totalAmount],
|
|
42
|
+
account,
|
|
43
|
+
});
|
|
44
|
+
await publicClient.waitForTransactionReceipt({ hash: approveHash });
|
|
45
|
+
// Step 2: Create cascade
|
|
46
|
+
const metadata = JSON.stringify(params.metadata || {});
|
|
47
|
+
const hash = await walletClient.writeContract({
|
|
48
|
+
address: contracts.cascade,
|
|
49
|
+
abi: contracts_1.CASCADE_ABI,
|
|
50
|
+
functionName: 'createCascade',
|
|
51
|
+
args: [recipients, amounts, contracts.usdc, metadata],
|
|
52
|
+
account,
|
|
53
|
+
});
|
|
54
|
+
const receipt = await publicClient.waitForTransactionReceipt({ hash });
|
|
55
|
+
// Parse cascade ID from event logs
|
|
56
|
+
let cascadeId = '0';
|
|
57
|
+
if (receipt.logs && receipt.logs.length > 0) {
|
|
58
|
+
const cascadeCreatedLog = receipt.logs.find((log) => log.topics && log.topics.length > 1);
|
|
59
|
+
if (cascadeCreatedLog && cascadeCreatedLog.topics) {
|
|
60
|
+
cascadeId = BigInt(cascadeCreatedLog.topics[1]).toString();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
cascadeId,
|
|
65
|
+
transactionHash: hash,
|
|
66
|
+
totalAmount: client.formatUSDC(totalAmount),
|
|
67
|
+
levels: params.levels.length,
|
|
68
|
+
status: 'active',
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
throw new Error(`Failed to create cascade: ${error.message}`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
async function releaseCascadeLevel(params, client) {
|
|
76
|
+
const account = client.getAccount();
|
|
77
|
+
const walletClient = client.getWalletClient();
|
|
78
|
+
const publicClient = client.getPublicClient();
|
|
79
|
+
const contracts = client.getContracts();
|
|
80
|
+
try {
|
|
81
|
+
const cascadeId = BigInt(params.cascadeId);
|
|
82
|
+
// Get cascade details
|
|
83
|
+
const [creator, recipients, amounts, token, currentLevel, totalLevels] = await publicClient.readContract({
|
|
84
|
+
address: contracts.cascade,
|
|
85
|
+
abi: contracts_1.CASCADE_ABI,
|
|
86
|
+
functionName: 'getCascade',
|
|
87
|
+
args: [cascadeId],
|
|
88
|
+
});
|
|
89
|
+
if (params.level !== Number(currentLevel)) {
|
|
90
|
+
throw new Error(`Cannot release level ${params.level}, current level is ${currentLevel}`);
|
|
91
|
+
}
|
|
92
|
+
// Release level
|
|
93
|
+
const hash = await walletClient.writeContract({
|
|
94
|
+
address: contracts.cascade,
|
|
95
|
+
abi: contracts_1.CASCADE_ABI,
|
|
96
|
+
functionName: 'releaseLevel',
|
|
97
|
+
args: [cascadeId],
|
|
98
|
+
account,
|
|
99
|
+
});
|
|
100
|
+
await publicClient.waitForTransactionReceipt({ hash });
|
|
101
|
+
const recipientsArray = recipients;
|
|
102
|
+
const amountsArray = amounts;
|
|
103
|
+
const recipient = recipientsArray[params.level];
|
|
104
|
+
const amount = amountsArray[params.level];
|
|
105
|
+
const nextLevel = params.level + 1 < Number(totalLevels) ? params.level + 1 : null;
|
|
106
|
+
return {
|
|
107
|
+
transactionHash: hash,
|
|
108
|
+
cascadeId: params.cascadeId,
|
|
109
|
+
level: params.level,
|
|
110
|
+
recipient,
|
|
111
|
+
amount: client.formatUSDC(amount),
|
|
112
|
+
nextLevel,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
throw new Error(`Failed to release cascade level: ${error.message}`);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=cascade.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cascade.js","sourceRoot":"","sources":["../../src/tools/cascade.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { Address } from 'viem';
|
|
3
|
+
import { ContractClient } from '../utils/contracts';
|
|
4
|
+
export declare const checkComplianceSchema: z.ZodObject<{
|
|
5
|
+
address: z.ZodString;
|
|
6
|
+
checkTypes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
7
|
+
}, "strip", z.ZodTypeAny, {
|
|
8
|
+
address: string;
|
|
9
|
+
checkTypes?: string[] | undefined;
|
|
10
|
+
}, {
|
|
11
|
+
address: string;
|
|
12
|
+
checkTypes?: string[] | undefined;
|
|
13
|
+
}>;
|
|
14
|
+
export declare function checkCompliance(params: z.infer<typeof checkComplianceSchema>, client: ContractClient): Promise<{
|
|
15
|
+
address: Address;
|
|
16
|
+
compliant: boolean;
|
|
17
|
+
checks: {
|
|
18
|
+
kyc: {
|
|
19
|
+
verified: boolean;
|
|
20
|
+
level: string;
|
|
21
|
+
verifiedAt?: number;
|
|
22
|
+
};
|
|
23
|
+
sanctions: {
|
|
24
|
+
clear: boolean;
|
|
25
|
+
checkedAt: number;
|
|
26
|
+
};
|
|
27
|
+
risk: {
|
|
28
|
+
score: number;
|
|
29
|
+
level: string;
|
|
30
|
+
factors: string[];
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
restrictions: string[];
|
|
34
|
+
lastUpdated: number;
|
|
35
|
+
}>;
|
|
36
|
+
//# sourceMappingURL=compliance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compliance.d.ts","sourceRoot":"","sources":["../../src/tools/compliance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAkB,MAAM,oBAAoB,CAAC;AAEpE,eAAO,MAAM,qBAAqB;;;;;;;;;EAGhC,CAAC;AAEH,wBAAsB,eAAe,CACnC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,EAC7C,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC;IACT,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE;QACN,GAAG,EAAE;YACH,QAAQ,EAAE,OAAO,CAAC;YAClB,KAAK,EAAE,MAAM,CAAC;YACd,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,CAAC;QACF,SAAS,EAAE;YACT,KAAK,EAAE,OAAO,CAAC;YACf,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;QACF,IAAI,EAAE;YACJ,KAAK,EAAE,MAAM,CAAC;YACd,KAAK,EAAE,MAAM,CAAC;YACd,OAAO,EAAE,MAAM,EAAE,CAAC;SACnB,CAAC;KACH,CAAC;IACF,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC,CAkDD"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.checkComplianceSchema = void 0;
|
|
4
|
+
exports.checkCompliance = checkCompliance;
|
|
5
|
+
const zod_1 = require("zod");
|
|
6
|
+
const contracts_1 = require("../utils/contracts");
|
|
7
|
+
exports.checkComplianceSchema = zod_1.z.object({
|
|
8
|
+
address: zod_1.z.string().describe('Agent address to check'),
|
|
9
|
+
checkTypes: zod_1.z.array(zod_1.z.string()).optional().describe('Specific checks to run (kyc, sanctions, risk)'),
|
|
10
|
+
});
|
|
11
|
+
async function checkCompliance(params, client) {
|
|
12
|
+
const publicClient = client.getPublicClient();
|
|
13
|
+
const contracts = client.getContracts();
|
|
14
|
+
try {
|
|
15
|
+
const address = params.address;
|
|
16
|
+
// Get compliance status
|
|
17
|
+
const [kycVerified, kycLevel, sanctionsClear, riskScore, restrictions, lastUpdated] = await publicClient.readContract({
|
|
18
|
+
address: contracts.compliance,
|
|
19
|
+
abi: contracts_1.COMPLIANCE_ABI,
|
|
20
|
+
functionName: 'getComplianceStatus',
|
|
21
|
+
args: [address],
|
|
22
|
+
});
|
|
23
|
+
// Map risk score to level
|
|
24
|
+
const riskLevel = Number(riskScore) < 30 ? 'low' :
|
|
25
|
+
Number(riskScore) < 70 ? 'medium' : 'high';
|
|
26
|
+
// Determine overall compliance
|
|
27
|
+
const compliant = kycVerified &&
|
|
28
|
+
sanctionsClear &&
|
|
29
|
+
Number(riskScore) < 70;
|
|
30
|
+
return {
|
|
31
|
+
address,
|
|
32
|
+
compliant,
|
|
33
|
+
checks: {
|
|
34
|
+
kyc: {
|
|
35
|
+
verified: kycVerified,
|
|
36
|
+
level: kycLevel,
|
|
37
|
+
verifiedAt: kycVerified ? Number(lastUpdated) * 1000 : undefined,
|
|
38
|
+
},
|
|
39
|
+
sanctions: {
|
|
40
|
+
clear: sanctionsClear,
|
|
41
|
+
checkedAt: Number(lastUpdated) * 1000,
|
|
42
|
+
},
|
|
43
|
+
risk: {
|
|
44
|
+
score: Number(riskScore),
|
|
45
|
+
level: riskLevel,
|
|
46
|
+
factors: [], // Would be populated from detailed analysis
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
restrictions: restrictions,
|
|
50
|
+
lastUpdated: Number(lastUpdated) * 1000,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
throw new Error(`Failed to check compliance: ${error.message}`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=compliance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compliance.js","sourceRoot":"","sources":["../../src/tools/compliance.ts"],"names":[],"mappings":";;;AASA,0CA0EC;AAnFD,6BAAwB;AAExB,kDAAoE;AAEvD,QAAA,qBAAqB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC5C,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IACtD,UAAU,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;CACrG,CAAC,CAAC;AAEI,KAAK,UAAU,eAAe,CACnC,MAA6C,EAC7C,MAAsB;IAuBtB,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;IAC9C,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;IAExC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,CAAC,OAAkB,CAAC;QAE1C,wBAAwB;QACxB,MAAM,CAAC,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,CAAC,GACjF,MAAM,YAAY,CAAC,YAAY,CAAC;YAC9B,OAAO,EAAE,SAAS,CAAC,UAAU;YAC7B,GAAG,EAAE,0BAAc;YACnB,YAAY,EAAE,qBAAqB;YACnC,IAAI,EAAE,CAAC,OAAO,CAAC;SAChB,CAAC,CAAC;QAEL,0BAA0B;QAC1B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACjC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QAE5D,+BAA+B;QAC/B,MAAM,SAAS,GAAI,WAAuB;YACvB,cAA0B;YAC3B,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QAEzC,OAAO;YACL,OAAO;YACP,SAAS;YACT,MAAM,EAAE;gBACN,GAAG,EAAE;oBACH,QAAQ,EAAE,WAAsB;oBAChC,KAAK,EAAE,QAAkB;oBACzB,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS;iBACjE;gBACD,SAAS,EAAE;oBACT,KAAK,EAAE,cAAyB;oBAChC,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI;iBACtC;gBACD,IAAI,EAAE;oBACJ,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC;oBACxB,KAAK,EAAE,SAAS;oBAChB,OAAO,EAAE,EAAE,EAAE,4CAA4C;iBAC1D;aACF;YACD,YAAY,EAAE,YAAwB;YACtC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI;SACxC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAClE,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ContractClient } from '../utils/contracts';
|
|
3
|
+
export declare const agentProfileSchema: z.ZodObject<{
|
|
4
|
+
address: z.ZodString;
|
|
5
|
+
}, "strip", z.ZodTypeAny, {
|
|
6
|
+
address: string;
|
|
7
|
+
}, {
|
|
8
|
+
address: string;
|
|
9
|
+
}>;
|
|
10
|
+
interface AgentProfile {
|
|
11
|
+
identity: {
|
|
12
|
+
name: string;
|
|
13
|
+
address: string;
|
|
14
|
+
tokenId: string;
|
|
15
|
+
registered: boolean;
|
|
16
|
+
};
|
|
17
|
+
reputation: {
|
|
18
|
+
score: number;
|
|
19
|
+
trustVector: string;
|
|
20
|
+
};
|
|
21
|
+
credit: {
|
|
22
|
+
limit: string;
|
|
23
|
+
available: string;
|
|
24
|
+
inUse: string;
|
|
25
|
+
};
|
|
26
|
+
treasury: {
|
|
27
|
+
address: string | null;
|
|
28
|
+
};
|
|
29
|
+
activity: {
|
|
30
|
+
escrowCount: number;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export declare function agentProfile(params: z.infer<typeof agentProfileSchema>, client: ContractClient): Promise<AgentProfile>;
|
|
34
|
+
export declare const quickPaySchema: z.ZodObject<{
|
|
35
|
+
to: z.ZodString;
|
|
36
|
+
amount: z.ZodString;
|
|
37
|
+
}, "strip", z.ZodTypeAny, {
|
|
38
|
+
to: string;
|
|
39
|
+
amount: string;
|
|
40
|
+
}, {
|
|
41
|
+
to: string;
|
|
42
|
+
amount: string;
|
|
43
|
+
}>;
|
|
44
|
+
interface QuickPayResult {
|
|
45
|
+
escrowId: string;
|
|
46
|
+
transactionHash: string;
|
|
47
|
+
blockNumber: number;
|
|
48
|
+
sender: string;
|
|
49
|
+
recipient: string;
|
|
50
|
+
amount: string;
|
|
51
|
+
autoReleaseDate: string;
|
|
52
|
+
}
|
|
53
|
+
export declare function quickPay(params: z.infer<typeof quickPaySchema>, client: ContractClient): Promise<QuickPayResult>;
|
|
54
|
+
export declare const ecosystemStatusSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
55
|
+
interface ContractStatus {
|
|
56
|
+
name: string;
|
|
57
|
+
address: string;
|
|
58
|
+
status: 'ok' | 'error';
|
|
59
|
+
error?: string;
|
|
60
|
+
}
|
|
61
|
+
interface EcosystemStatus {
|
|
62
|
+
chain: {
|
|
63
|
+
network: string;
|
|
64
|
+
blockNumber: string;
|
|
65
|
+
gasPrice: string;
|
|
66
|
+
};
|
|
67
|
+
contracts: ContractStatus[];
|
|
68
|
+
summary: {
|
|
69
|
+
healthy: number;
|
|
70
|
+
total: number;
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
export declare function ecosystemStatus(params: z.infer<typeof ecosystemStatusSchema>, client: ContractClient): Promise<EcosystemStatus>;
|
|
74
|
+
export declare const agentSearchSchema: z.ZodObject<{
|
|
75
|
+
query: z.ZodOptional<z.ZodString>;
|
|
76
|
+
capability: z.ZodOptional<z.ZodString>;
|
|
77
|
+
minReputation: z.ZodOptional<z.ZodNumber>;
|
|
78
|
+
}, "strip", z.ZodTypeAny, {
|
|
79
|
+
query?: string | undefined;
|
|
80
|
+
minReputation?: number | undefined;
|
|
81
|
+
capability?: string | undefined;
|
|
82
|
+
}, {
|
|
83
|
+
query?: string | undefined;
|
|
84
|
+
minReputation?: number | undefined;
|
|
85
|
+
capability?: string | undefined;
|
|
86
|
+
}>;
|
|
87
|
+
interface AgentSearchResult {
|
|
88
|
+
address: string;
|
|
89
|
+
name: string;
|
|
90
|
+
capabilities: string;
|
|
91
|
+
reputationScore: number;
|
|
92
|
+
tokenId: string;
|
|
93
|
+
}
|
|
94
|
+
interface AgentSearchResponse {
|
|
95
|
+
results: AgentSearchResult[];
|
|
96
|
+
total: number;
|
|
97
|
+
}
|
|
98
|
+
export declare function agentSearch(params: z.infer<typeof agentSearchSchema>, client: ContractClient): Promise<AgentSearchResponse>;
|
|
99
|
+
export declare const onboardAgentSchema: z.ZodObject<{
|
|
100
|
+
name: z.ZodString;
|
|
101
|
+
capabilities: z.ZodString;
|
|
102
|
+
}, "strip", z.ZodTypeAny, {
|
|
103
|
+
name: string;
|
|
104
|
+
capabilities: string;
|
|
105
|
+
}, {
|
|
106
|
+
name: string;
|
|
107
|
+
capabilities: string;
|
|
108
|
+
}>;
|
|
109
|
+
interface OnboardingInstructions {
|
|
110
|
+
steps: Array<{
|
|
111
|
+
number: number;
|
|
112
|
+
title: string;
|
|
113
|
+
description: string;
|
|
114
|
+
command?: string;
|
|
115
|
+
}>;
|
|
116
|
+
estimatedGas: string;
|
|
117
|
+
requirements: string[];
|
|
118
|
+
}
|
|
119
|
+
export declare function onboardAgent(params: z.infer<typeof onboardAgentSchema>, client: ContractClient): Promise<OnboardingInstructions>;
|
|
120
|
+
export {};
|
|
121
|
+
//# sourceMappingURL=convenience.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convenience.d.ts","sourceRoot":"","sources":["../../src/tools/convenience.ts"],"names":[],"mappings":"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"}
|