@agenticvault/agentic-vault 0.1.0 → 0.1.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/.claude-plugin/plugin.json +4 -2
- package/dist/agentic/cli.d.ts +1 -0
- package/dist/agentic/cli.js +11 -2
- package/dist/agentic/cli.js.map +1 -1
- package/dist/agentic/mcp/server.js +1 -0
- package/dist/agentic/mcp/server.js.map +1 -1
- package/dist/agentic/mcp/tools/get-balance.d.ts +3 -0
- package/dist/agentic/mcp/tools/get-balance.js +29 -0
- package/dist/agentic/mcp/tools/get-balance.js.map +1 -0
- package/dist/agentic/mcp/tools/index.d.ts +1 -1
- package/dist/agentic/mcp/tools/index.js +6 -0
- package/dist/agentic/mcp/tools/index.js.map +1 -1
- package/dist/agentic/mcp/tools/send-erc20-transfer.d.ts +3 -0
- package/dist/agentic/mcp/tools/send-erc20-transfer.js +33 -0
- package/dist/agentic/mcp/tools/send-erc20-transfer.js.map +1 -0
- package/dist/agentic/mcp/tools/send-transfer.d.ts +3 -0
- package/dist/agentic/mcp/tools/send-transfer.js +30 -0
- package/dist/agentic/mcp/tools/send-transfer.js.map +1 -0
- package/dist/agentic/mcp/tools/shared.d.ts +20 -0
- package/dist/cli/index.js +0 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/protocols/catalog.d.ts +13 -0
- package/dist/protocols/catalog.js +7 -0
- package/dist/protocols/catalog.js.map +1 -1
- package/dist/protocols/index.d.ts +1 -1
- package/dist/protocols/index.js +1 -1
- package/dist/protocols/index.js.map +1 -1
- package/dist/protocols/workflows/get-balance.d.ts +7 -0
- package/dist/protocols/workflows/get-balance.js +90 -0
- package/dist/protocols/workflows/get-balance.js.map +1 -0
- package/dist/protocols/workflows/index.d.ts +3 -1
- package/dist/protocols/workflows/index.js +2 -0
- package/dist/protocols/workflows/index.js.map +1 -1
- package/dist/protocols/workflows/send-transfer.d.ts +14 -0
- package/dist/protocols/workflows/send-transfer.js +349 -0
- package/dist/protocols/workflows/send-transfer.js.map +1 -0
- package/dist/protocols/workflows/sign-defi-call.d.ts +1 -1
- package/dist/protocols/workflows/sign-defi-call.js +2 -1
- package/dist/protocols/workflows/sign-defi-call.js.map +1 -1
- package/dist/protocols/workflows/sign-permit.d.ts +1 -1
- package/dist/protocols/workflows/sign-permit.js +2 -1
- package/dist/protocols/workflows/sign-permit.js.map +1 -1
- package/dist/protocols/workflows/types.d.ts +26 -0
- package/dist/protocols/workflows/types.js +12 -1
- package/dist/protocols/workflows/types.js.map +1 -1
- package/dist/rpc/index.d.ts +1 -0
- package/dist/rpc/index.js +2 -0
- package/dist/rpc/index.js.map +1 -0
- package/dist/rpc/viem-rpc-provider.d.ts +29 -0
- package/dist/rpc/viem-rpc-provider.js +141 -0
- package/dist/rpc/viem-rpc-provider.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentic-vault",
|
|
3
3
|
"displayName": "Agentic Vault",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.1",
|
|
5
5
|
"description": "Server-side EVM signing with policy-constrained MCP tools for Claude Code",
|
|
6
6
|
"publisher": "agenticvault",
|
|
7
7
|
"skills": [
|
|
@@ -13,7 +13,9 @@
|
|
|
13
13
|
"mcpServers": {
|
|
14
14
|
"agentic-vault": {
|
|
15
15
|
"command": "node",
|
|
16
|
-
"args": [
|
|
16
|
+
"args": [
|
|
17
|
+
"dist/agentic/cli.js"
|
|
18
|
+
]
|
|
17
19
|
}
|
|
18
20
|
}
|
|
19
21
|
}
|
package/dist/agentic/cli.d.ts
CHANGED
package/dist/agentic/cli.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { createSigningProvider, EvmSignerAdapter, } from '../index.js';
|
|
2
|
+
import { createSigningProvider, EvmSignerAdapter, ViemRpcProvider, } from '../index.js';
|
|
3
3
|
import { PolicyEngine, erc20Evaluator, uniswapV3Evaluator, aaveV3Evaluator, loadPolicyConfigFromFile, } from '../protocols/index.js';
|
|
4
4
|
import { AuditLogger } from './audit/logger.js';
|
|
5
5
|
import { startStdioServer } from './mcp/server.js';
|
|
@@ -9,6 +9,7 @@ export function parseArgs(argv) {
|
|
|
9
9
|
let expectedAddress;
|
|
10
10
|
let unsafeRawSign = false;
|
|
11
11
|
let policyConfig;
|
|
12
|
+
let rpcUrl;
|
|
12
13
|
for (let i = 2; i < argv.length; i++) {
|
|
13
14
|
const arg = argv[i];
|
|
14
15
|
switch (arg) {
|
|
@@ -27,6 +28,9 @@ export function parseArgs(argv) {
|
|
|
27
28
|
case '--policy-config':
|
|
28
29
|
policyConfig = argv[++i];
|
|
29
30
|
break;
|
|
31
|
+
case '--rpc-url':
|
|
32
|
+
rpcUrl = argv[++i];
|
|
33
|
+
break;
|
|
30
34
|
default:
|
|
31
35
|
// Ignore unknown arguments
|
|
32
36
|
break;
|
|
@@ -36,11 +40,13 @@ export function parseArgs(argv) {
|
|
|
36
40
|
keyId = process.env.VAULT_KEY_ID ?? '';
|
|
37
41
|
if (!region)
|
|
38
42
|
region = process.env.VAULT_REGION ?? '';
|
|
43
|
+
if (!rpcUrl)
|
|
44
|
+
rpcUrl = process.env.VAULT_RPC_URL;
|
|
39
45
|
if (!keyId)
|
|
40
46
|
throw new Error('--key-id or VAULT_KEY_ID environment variable is required');
|
|
41
47
|
if (!region)
|
|
42
48
|
throw new Error('--region or VAULT_REGION environment variable is required');
|
|
43
|
-
return { keyId, region, expectedAddress, unsafeRawSign, policyConfig };
|
|
49
|
+
return { keyId, region, expectedAddress, unsafeRawSign, policyConfig, rpcUrl };
|
|
44
50
|
}
|
|
45
51
|
const DEFAULT_POLICY = {
|
|
46
52
|
allowedChainIds: [],
|
|
@@ -67,11 +73,14 @@ async function main() {
|
|
|
67
73
|
const policyEngine = new PolicyEngine(policyConfig, [erc20Evaluator, uniswapV3Evaluator, aaveV3Evaluator]);
|
|
68
74
|
// Create audit logger
|
|
69
75
|
const auditLogger = new AuditLogger();
|
|
76
|
+
// Create RPC provider (optional — enables get_balance, send_transfer, send_erc20_transfer)
|
|
77
|
+
const rpcProvider = new ViemRpcProvider({ rpcUrl: args.rpcUrl });
|
|
70
78
|
// Start MCP stdio server
|
|
71
79
|
await startStdioServer({
|
|
72
80
|
signer,
|
|
73
81
|
policyEngine,
|
|
74
82
|
auditLogger,
|
|
83
|
+
rpcProvider,
|
|
75
84
|
unsafeRawSign: args.unsafeRawSign,
|
|
76
85
|
});
|
|
77
86
|
}
|
package/dist/agentic/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/agentic/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EACL,qBAAqB,EACrB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/agentic/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@ export function createMcpServer(options) {
|
|
|
12
12
|
policyEngine: options.policyEngine,
|
|
13
13
|
auditLogger: options.auditLogger,
|
|
14
14
|
dispatcher: options.dispatcher ?? new ProtocolDispatcher(createDefaultRegistry()),
|
|
15
|
+
rpcProvider: options.rpcProvider,
|
|
15
16
|
};
|
|
16
17
|
registerTools(server, ctx, { unsafeRawSign: options.unsafeRawSign });
|
|
17
18
|
return server;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/agentic/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,EAAE,aAAa,EAA+C,MAAM,kBAAkB,CAAC;AAO9F,MAAM,UAAU,eAAe,CAAC,OAAyB;IACvD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,mBAAmB;QACzC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,OAAO;KACpC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAgB;QACvB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI,kBAAkB,CAAC,qBAAqB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/agentic/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,EAAE,aAAa,EAA+C,MAAM,kBAAkB,CAAC;AAO9F,MAAM,UAAU,eAAe,CAAC,OAAyB;IACvD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,mBAAmB;QACzC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,OAAO;KACpC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAgB;QACvB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI,kBAAkB,CAAC,qBAAqB,EAAE,CAAC;QACjF,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC;IAEF,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAErE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAyB;IAC9D,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { zodHexAddress, zodPositiveChainId } from './shared.js';
|
|
2
|
+
import { getBalanceWorkflow } from '../../../protocols/index.js';
|
|
3
|
+
import { toMcpResult } from './result-adapter.js';
|
|
4
|
+
const inputSchema = {
|
|
5
|
+
chainId: zodPositiveChainId.describe('The chain ID to query'),
|
|
6
|
+
address: zodHexAddress.optional().describe('The address to query (defaults to vault address)'),
|
|
7
|
+
token: zodHexAddress.optional().describe('ERC20 token address (omit for native ETH balance)'),
|
|
8
|
+
};
|
|
9
|
+
export function registerGetBalance(server, ctx) {
|
|
10
|
+
server.registerTool('get_balance', {
|
|
11
|
+
description: 'Query native ETH or ERC20 token balance for an address',
|
|
12
|
+
inputSchema,
|
|
13
|
+
}, async (args) => {
|
|
14
|
+
const result = await getBalanceWorkflow({
|
|
15
|
+
signer: ctx.signer,
|
|
16
|
+
policyEngine: ctx.policyEngine,
|
|
17
|
+
auditSink: ctx.auditLogger,
|
|
18
|
+
rpcProvider: ctx.rpcProvider,
|
|
19
|
+
caller: 'mcp-client',
|
|
20
|
+
service: 'agentic-vault-mcp',
|
|
21
|
+
}, {
|
|
22
|
+
chainId: args.chainId,
|
|
23
|
+
address: args.address,
|
|
24
|
+
token: args.token,
|
|
25
|
+
});
|
|
26
|
+
return toMcpResult(result);
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=get-balance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-balance.js","sourceRoot":"","sources":["../../../../src/agentic/mcp/tools/get-balance.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,aAAa,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,kBAAkB,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IAC7D,OAAO,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;IAC9F,KAAK,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;CAC9F,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,GAAgB;IACpE,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE;QACjC,WAAW,EAAE,wDAAwD;QACrE,WAAW;KACZ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAChB,MAAM,MAAM,GAAG,MAAM,kBAAkB,CACrC;YACE,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,SAAS,EAAE,GAAG,CAAC,WAAW;YAC1B,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,mBAAmB;SAC7B,EACD;YACE,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAA6B;YAC3C,KAAK,EAAE,IAAI,CAAC,KAA2B;SACxC,CACF,CAAC;QACF,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
2
|
import { type ToolContext } from './shared.js';
|
|
3
|
-
export { type ToolContext, type ToolSigner, type ToolPolicyEngine, type ToolAuditLogger, type ToolDispatcher } from './shared.js';
|
|
3
|
+
export { type ToolContext, type ToolSigner, type ToolPolicyEngine, type ToolAuditLogger, type ToolDispatcher, type ToolRpcProvider } from './shared.js';
|
|
4
4
|
export interface RegisterToolsOptions {
|
|
5
5
|
unsafeRawSign?: boolean;
|
|
6
6
|
}
|
|
@@ -5,6 +5,9 @@ import { registerSignPermit } from './sign-permit.js';
|
|
|
5
5
|
import { registerSignDefiCall } from './sign-defi-call.js';
|
|
6
6
|
import { registerSignTransaction } from './sign-transaction.js';
|
|
7
7
|
import { registerSignTypedData } from './sign-typed-data.js';
|
|
8
|
+
import { registerGetBalance } from './get-balance.js';
|
|
9
|
+
import { registerSendTransfer } from './send-transfer.js';
|
|
10
|
+
import { registerSendErc20Transfer } from './send-erc20-transfer.js';
|
|
8
11
|
export function registerTools(server, ctx, options) {
|
|
9
12
|
// Always register safe tools
|
|
10
13
|
registerGetAddress(server, ctx);
|
|
@@ -12,6 +15,9 @@ export function registerTools(server, ctx, options) {
|
|
|
12
15
|
registerSignSwap(server, ctx);
|
|
13
16
|
registerSignPermit(server, ctx);
|
|
14
17
|
registerSignDefiCall(server, ctx);
|
|
18
|
+
registerGetBalance(server, ctx);
|
|
19
|
+
registerSendTransfer(server, ctx);
|
|
20
|
+
registerSendErc20Transfer(server, ctx);
|
|
15
21
|
// Only register unsafe tools when explicitly opted in
|
|
16
22
|
if (options?.unsafeRawSign) {
|
|
17
23
|
registerSignTransaction(server, ctx);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/agentic/mcp/tools/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/agentic/mcp/tools/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAQrE,MAAM,UAAU,aAAa,CAC3B,MAAiB,EACjB,GAAgB,EAChB,OAA8B;IAE9B,6BAA6B;IAC7B,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,yBAAyB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEvC,sDAAsD;IACtD,IAAI,OAAO,EAAE,aAAa,EAAE,CAAC;QAC3B,uBAAuB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACrC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { zodHexAddress, zodPositiveChainId } from './shared.js';
|
|
3
|
+
import { sendErc20Transfer as sendErc20TransferWorkflow } from '../../../protocols/index.js';
|
|
4
|
+
import { toMcpResult } from './result-adapter.js';
|
|
5
|
+
const inputSchema = {
|
|
6
|
+
chainId: zodPositiveChainId.describe('The chain ID for the transaction'),
|
|
7
|
+
token: zodHexAddress.describe('The ERC20 token contract address'),
|
|
8
|
+
to: zodHexAddress.describe('The recipient address'),
|
|
9
|
+
amount: z.string().describe('Amount in smallest unit (decimal string)'),
|
|
10
|
+
};
|
|
11
|
+
export function registerSendErc20Transfer(server, ctx) {
|
|
12
|
+
server.registerTool('send_erc20_transfer', {
|
|
13
|
+
description: 'Send ERC20 token transfer after policy validation, sign and broadcast',
|
|
14
|
+
inputSchema,
|
|
15
|
+
}, async (args) => {
|
|
16
|
+
const result = await sendErc20TransferWorkflow({
|
|
17
|
+
signer: ctx.signer,
|
|
18
|
+
policyEngine: ctx.policyEngine,
|
|
19
|
+
auditSink: ctx.auditLogger,
|
|
20
|
+
dispatcher: ctx.dispatcher,
|
|
21
|
+
rpcProvider: ctx.rpcProvider,
|
|
22
|
+
caller: 'mcp-client',
|
|
23
|
+
service: 'agentic-vault-mcp',
|
|
24
|
+
}, {
|
|
25
|
+
chainId: args.chainId,
|
|
26
|
+
token: args.token,
|
|
27
|
+
to: args.to,
|
|
28
|
+
amount: args.amount,
|
|
29
|
+
});
|
|
30
|
+
return toMcpResult(result);
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=send-erc20-transfer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send-erc20-transfer.js","sourceRoot":"","sources":["../../../../src/agentic/mcp/tools/send-erc20-transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAoB,aAAa,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAClF,OAAO,EAAE,iBAAiB,IAAI,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAC7F,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,kBAAkB,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IACxE,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IACjE,EAAE,EAAE,aAAa,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IACnD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;CACxE,CAAC;AAEF,MAAM,UAAU,yBAAyB,CAAC,MAAiB,EAAE,GAAgB;IAC3E,MAAM,CAAC,YAAY,CAAC,qBAAqB,EAAE;QACzC,WAAW,EAAE,uEAAuE;QACpF,WAAW;KACZ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAChB,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAC5C;YACE,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,SAAS,EAAE,GAAG,CAAC,WAAW;YAC1B,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,mBAAmB;SAC7B,EACD;YACE,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CACF,CAAC;QACF,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { zodHexAddress, zodPositiveChainId } from './shared.js';
|
|
3
|
+
import { sendTransfer as sendTransferWorkflow } from '../../../protocols/index.js';
|
|
4
|
+
import { toMcpResult } from './result-adapter.js';
|
|
5
|
+
const inputSchema = {
|
|
6
|
+
chainId: zodPositiveChainId.describe('The chain ID for the transaction'),
|
|
7
|
+
to: zodHexAddress.describe('The recipient address'),
|
|
8
|
+
value: z.string().describe('Amount in wei (decimal string)'),
|
|
9
|
+
};
|
|
10
|
+
export function registerSendTransfer(server, ctx) {
|
|
11
|
+
server.registerTool('send_transfer', {
|
|
12
|
+
description: 'Send native ETH transfer after policy validation, sign and broadcast',
|
|
13
|
+
inputSchema,
|
|
14
|
+
}, async (args) => {
|
|
15
|
+
const result = await sendTransferWorkflow({
|
|
16
|
+
signer: ctx.signer,
|
|
17
|
+
policyEngine: ctx.policyEngine,
|
|
18
|
+
auditSink: ctx.auditLogger,
|
|
19
|
+
rpcProvider: ctx.rpcProvider,
|
|
20
|
+
caller: 'mcp-client',
|
|
21
|
+
service: 'agentic-vault-mcp',
|
|
22
|
+
}, {
|
|
23
|
+
chainId: args.chainId,
|
|
24
|
+
to: args.to,
|
|
25
|
+
value: args.value,
|
|
26
|
+
});
|
|
27
|
+
return toMcpResult(result);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=send-transfer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send-transfer.js","sourceRoot":"","sources":["../../../../src/agentic/mcp/tools/send-transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAoB,aAAa,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAClF,OAAO,EAAE,YAAY,IAAI,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,kBAAkB,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IACxE,EAAE,EAAE,aAAa,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IACnD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;CAC7D,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,GAAgB;IACtE,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE;QACnC,WAAW,EAAE,sEAAsE;QACnF,WAAW;KACZ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAChB,MAAM,MAAM,GAAG,MAAM,oBAAoB,CACvC;YACE,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,SAAS,EAAE,GAAG,CAAC,WAAW;YAC1B,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,mBAAmB;SAC7B,EACD;YACE,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CACF,CAAC;QACF,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -62,10 +62,30 @@ export interface ToolAuditInput {
|
|
|
62
62
|
export interface ToolAuditLogger {
|
|
63
63
|
log(entry: ToolAuditInput): unknown;
|
|
64
64
|
}
|
|
65
|
+
/** RPC provider interface for on-chain reads and broadcast */
|
|
66
|
+
export interface ToolRpcProvider {
|
|
67
|
+
getBalance(chainId: number, address: `0x${string}`): Promise<bigint>;
|
|
68
|
+
getErc20Balance(chainId: number, token: `0x${string}`, owner: `0x${string}`): Promise<bigint>;
|
|
69
|
+
getTransactionCount(chainId: number, address: `0x${string}`): Promise<number>;
|
|
70
|
+
estimateGas(chainId: number, tx: {
|
|
71
|
+
from: `0x${string}`;
|
|
72
|
+
to: `0x${string}`;
|
|
73
|
+
value?: bigint;
|
|
74
|
+
data?: `0x${string}`;
|
|
75
|
+
}): Promise<bigint>;
|
|
76
|
+
getGasPrice(chainId: number): Promise<bigint>;
|
|
77
|
+
estimateFeesPerGas(chainId: number): Promise<{
|
|
78
|
+
maxFeePerGas: bigint;
|
|
79
|
+
maxPriorityFeePerGas: bigint;
|
|
80
|
+
}>;
|
|
81
|
+
getNativeCurrencySymbol(chainId: number): string;
|
|
82
|
+
sendRawTransaction(chainId: number, signedTx: `0x${string}`): Promise<`0x${string}`>;
|
|
83
|
+
}
|
|
65
84
|
/** Full context passed to each MCP tool */
|
|
66
85
|
export interface ToolContext {
|
|
67
86
|
signer: ToolSigner;
|
|
68
87
|
policyEngine: ToolPolicyEngine;
|
|
69
88
|
auditLogger: ToolAuditLogger;
|
|
70
89
|
dispatcher?: ToolDispatcher;
|
|
90
|
+
rpcProvider?: ToolRpcProvider;
|
|
71
91
|
}
|
package/dist/cli/index.js
CHANGED
|
File without changes
|
package/dist/index.d.ts
CHANGED
|
@@ -6,6 +6,8 @@ export type { SigningProvider, SignatureBlob, PublicKeyBlob, } from './core/sign
|
|
|
6
6
|
export { EvmSignerAdapter, type EvmSignerAdapterConfig } from './core/evm-signer-adapter.js';
|
|
7
7
|
export { AwsKmsProvider, type AwsKmsProviderConfig } from './providers/aws-kms/aws-kms-provider.js';
|
|
8
8
|
export { createSigningProvider, type SigningProviderConfig, type AwsKmsSigningProviderConfig, } from './provider/factory.js';
|
|
9
|
+
export { ViemRpcProvider } from './rpc/index.js';
|
|
10
|
+
export type { WorkflowRpcProvider } from './protocols/workflows/types.js';
|
|
9
11
|
export type { PolicyConfig, PolicyRequest, PolicyEvaluation } from './protocols/policy/types.js';
|
|
10
12
|
export type { AuditEntry } from './agentic/audit/types.js';
|
|
11
13
|
export { AuditLogger } from './agentic/audit/logger.js';
|
package/dist/index.js
CHANGED
|
@@ -5,5 +5,7 @@ export { parseDerSignature, parseDerPublicKey, normalizeSignature, resolveRecove
|
|
|
5
5
|
export { EvmSignerAdapter } from './core/evm-signer-adapter.js';
|
|
6
6
|
export { AwsKmsProvider } from './providers/aws-kms/aws-kms-provider.js';
|
|
7
7
|
export { createSigningProvider, } from './provider/factory.js';
|
|
8
|
+
// ─── RPC Provider ───
|
|
9
|
+
export { ViemRpcProvider } from './rpc/index.js';
|
|
8
10
|
export { AuditLogger } from './agentic/audit/logger.js';
|
|
9
11
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,OAAO,EAAE,gBAAgB,EAAwB,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAwC,MAAM,iBAAiB,CAAC;AAErF,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAQ9B,OAAO,EAAE,gBAAgB,EAA+B,MAAM,8BAA8B,CAAC;AAC7F,OAAO,EAAE,cAAc,EAA6B,MAAM,yCAAyC,CAAC;AACpG,OAAO,EACL,qBAAqB,GAGtB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,OAAO,EAAE,gBAAgB,EAAwB,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAwC,MAAM,iBAAiB,CAAC;AAErF,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAQ9B,OAAO,EAAE,gBAAgB,EAA+B,MAAM,8BAA8B,CAAC;AAC7F,OAAO,EAAE,cAAc,EAA6B,MAAM,yCAAyC,CAAC;AACpG,OAAO,EACL,qBAAqB,GAGtB,MAAM,uBAAuB,CAAC;AAE/B,uBAAuB;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AASjD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -35,6 +35,19 @@ export declare const erc20TransferAbi: {
|
|
|
35
35
|
readonly type: "bool";
|
|
36
36
|
}];
|
|
37
37
|
};
|
|
38
|
+
export declare const erc20BalanceOfAbi: {
|
|
39
|
+
readonly name: "balanceOf";
|
|
40
|
+
readonly type: "function";
|
|
41
|
+
readonly stateMutability: "view";
|
|
42
|
+
readonly inputs: readonly [{
|
|
43
|
+
readonly name: "account";
|
|
44
|
+
readonly type: "address";
|
|
45
|
+
}];
|
|
46
|
+
readonly outputs: readonly [{
|
|
47
|
+
readonly name: "";
|
|
48
|
+
readonly type: "uint256";
|
|
49
|
+
}];
|
|
50
|
+
};
|
|
38
51
|
export declare const uniswapV3ExactInputSingleAbi: {
|
|
39
52
|
readonly name: "exactInputSingle";
|
|
40
53
|
readonly type: "function";
|
|
@@ -23,6 +23,13 @@ export const erc20TransferAbi = {
|
|
|
23
23
|
],
|
|
24
24
|
outputs: [{ name: '', type: 'bool' }],
|
|
25
25
|
};
|
|
26
|
+
export const erc20BalanceOfAbi = {
|
|
27
|
+
name: 'balanceOf',
|
|
28
|
+
type: 'function',
|
|
29
|
+
stateMutability: 'view',
|
|
30
|
+
inputs: [{ name: 'account', type: 'address' }],
|
|
31
|
+
outputs: [{ name: '', type: 'uint256' }],
|
|
32
|
+
};
|
|
26
33
|
export const uniswapV3ExactInputSingleAbi = {
|
|
27
34
|
name: 'exactInputSingle',
|
|
28
35
|
type: 'function',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/protocols/catalog.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/protocols/catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,4 +13,4 @@ export type { ProtocolAction } from './catalog.js';
|
|
|
13
13
|
export { erc20Evaluator } from './policy/evaluators/erc20.js';
|
|
14
14
|
export { uniswapV3Evaluator } from './policy/evaluators/uniswap-v3.js';
|
|
15
15
|
export { aaveV3Evaluator } from './policy/evaluators/aave-v3.js';
|
|
16
|
-
export { signDefiCall, signPermit, getAddress as getAddressWorkflow, healthCheck as healthCheckWorkflow, type WorkflowCaller, type AuditSink, type WorkflowSigner, type WorkflowPolicyEngine, type WorkflowDispatcher, type WorkflowDecodedIntent, type WorkflowContext, type WorkflowResult, type SignDefiCallInput, type SignPermitInput, } from './workflows/index.js';
|
|
16
|
+
export { signDefiCall, signPermit, getAddress as getAddressWorkflow, healthCheck as healthCheckWorkflow, getBalance as getBalanceWorkflow, sendTransfer, sendErc20Transfer, type WorkflowCaller, type AuditSink, type WorkflowSigner, type WorkflowPolicyEngine, type WorkflowDispatcher, type WorkflowDecodedIntent, type WorkflowRpcProvider, type WorkflowContext, type WorkflowResult, type SignDefiCallInput, type SignPermitInput, type GetBalanceInput, type SendTransferInput, type SendErc20TransferInput, } from './workflows/index.js';
|
package/dist/protocols/index.js
CHANGED
|
@@ -15,5 +15,5 @@ export { erc20Evaluator } from './policy/evaluators/erc20.js';
|
|
|
15
15
|
export { uniswapV3Evaluator } from './policy/evaluators/uniswap-v3.js';
|
|
16
16
|
export { aaveV3Evaluator } from './policy/evaluators/aave-v3.js';
|
|
17
17
|
// Workflows
|
|
18
|
-
export { signDefiCall, signPermit, getAddress as getAddressWorkflow, healthCheck as healthCheckWorkflow, } from './workflows/index.js';
|
|
18
|
+
export { signDefiCall, signPermit, getAddress as getAddressWorkflow, healthCheck as healthCheckWorkflow, getBalance as getBalanceWorkflow, sendTransfer, sendErc20Transfer, } from './workflows/index.js';
|
|
19
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/protocols/index.ts"],"names":[],"mappings":"AAeA,UAAU;AACV,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,WAAW;AACX,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,YAAY;AACZ,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAWjF,iBAAiB;AACjB,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3D,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,YAAY;AACZ,OAAO,EACL,YAAY,EACZ,UAAU,EACV,UAAU,IAAI,kBAAkB,EAChC,WAAW,IAAI,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/protocols/index.ts"],"names":[],"mappings":"AAeA,UAAU;AACV,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,WAAW;AACX,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,YAAY;AACZ,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAWjF,iBAAiB;AACjB,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3D,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,YAAY;AACZ,OAAO,EACL,YAAY,EACZ,UAAU,EACV,UAAU,IAAI,kBAAkB,EAChC,WAAW,IAAI,mBAAmB,EAClC,UAAU,IAAI,kBAAkB,EAChC,YAAY,EACZ,iBAAiB,GAelB,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { WorkflowContext, WorkflowResult } from './types.js';
|
|
2
|
+
export interface GetBalanceInput {
|
|
3
|
+
chainId: number;
|
|
4
|
+
address?: string;
|
|
5
|
+
token?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function getBalance(ctx: WorkflowContext, input: GetBalanceInput): Promise<WorkflowResult>;
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
const DEFAULT_SERVICE = 'agentic-vault';
|
|
2
|
+
export async function getBalance(ctx, input) {
|
|
3
|
+
const service = ctx.service ?? DEFAULT_SERVICE;
|
|
4
|
+
if (!ctx.rpcProvider) {
|
|
5
|
+
ctx.auditSink.log({
|
|
6
|
+
service,
|
|
7
|
+
action: 'get_balance',
|
|
8
|
+
who: ctx.caller,
|
|
9
|
+
what: 'RPC provider not available for balance query',
|
|
10
|
+
why: 'Configuration error: rpcProvider is required (pass --rpc-url)',
|
|
11
|
+
result: 'error',
|
|
12
|
+
});
|
|
13
|
+
return { status: 'error', reason: 'RPC provider is required for get_balance (pass --rpc-url)' };
|
|
14
|
+
}
|
|
15
|
+
// Resolve address: use provided or fall back to signer address
|
|
16
|
+
let address;
|
|
17
|
+
if (input.address) {
|
|
18
|
+
address = input.address.toLowerCase();
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
if (!ctx.signer) {
|
|
22
|
+
ctx.auditSink.log({
|
|
23
|
+
service,
|
|
24
|
+
action: 'get_balance',
|
|
25
|
+
who: ctx.caller,
|
|
26
|
+
what: 'Neither address nor signer available for balance query',
|
|
27
|
+
why: 'Configuration error: address or signer is required',
|
|
28
|
+
result: 'error',
|
|
29
|
+
});
|
|
30
|
+
return { status: 'error', reason: 'Address or signer is required for get_balance' };
|
|
31
|
+
}
|
|
32
|
+
try {
|
|
33
|
+
address = await ctx.signer.getAddress();
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
37
|
+
ctx.auditSink.log({
|
|
38
|
+
service,
|
|
39
|
+
action: 'get_balance',
|
|
40
|
+
who: ctx.caller,
|
|
41
|
+
what: 'Failed to resolve signer address',
|
|
42
|
+
why: `Signer error: ${msg}`,
|
|
43
|
+
result: 'error',
|
|
44
|
+
details: { error: msg },
|
|
45
|
+
});
|
|
46
|
+
return { status: 'error', reason: `Failed to resolve signer address: ${msg}` };
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
try {
|
|
50
|
+
let balance;
|
|
51
|
+
let symbol;
|
|
52
|
+
if (input.token) {
|
|
53
|
+
const token = input.token.toLowerCase();
|
|
54
|
+
balance = await ctx.rpcProvider.getErc20Balance(input.chainId, token, address);
|
|
55
|
+
symbol = 'ERC20';
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
balance = await ctx.rpcProvider.getBalance(input.chainId, address);
|
|
59
|
+
symbol = ctx.rpcProvider.getNativeCurrencySymbol(input.chainId);
|
|
60
|
+
}
|
|
61
|
+
ctx.auditSink.log({
|
|
62
|
+
service,
|
|
63
|
+
action: 'get_balance',
|
|
64
|
+
who: ctx.caller,
|
|
65
|
+
what: `Balance query for ${address} on chain ${input.chainId}: ${balance.toString()} ${symbol}`,
|
|
66
|
+
why: 'Balance lookup requested',
|
|
67
|
+
result: 'approved',
|
|
68
|
+
details: { chainId: input.chainId, address, token: input.token, balance: balance.toString(), symbol },
|
|
69
|
+
});
|
|
70
|
+
return {
|
|
71
|
+
status: 'approved',
|
|
72
|
+
data: JSON.stringify({ balance: balance.toString(), symbol }),
|
|
73
|
+
details: { chainId: input.chainId, address, balance: balance.toString(), symbol },
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
78
|
+
ctx.auditSink.log({
|
|
79
|
+
service,
|
|
80
|
+
action: 'get_balance',
|
|
81
|
+
who: ctx.caller,
|
|
82
|
+
what: `Failed to query balance for ${address} on chain ${input.chainId}`,
|
|
83
|
+
why: 'RPC error',
|
|
84
|
+
result: 'error',
|
|
85
|
+
details: { error: msg },
|
|
86
|
+
});
|
|
87
|
+
return { status: 'error', reason: `Balance query failed: ${msg}` };
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=get-balance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-balance.js","sourceRoot":"","sources":["../../../src/protocols/workflows/get-balance.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
export type { WorkflowCaller, AuditSink, WorkflowSigner, WorkflowPolicyEngine, WorkflowDispatcher, WorkflowDecodedIntent, WorkflowContext, WorkflowResult, } from './types.js';
|
|
1
|
+
export type { WorkflowCaller, AuditSink, WorkflowSigner, WorkflowPolicyEngine, WorkflowDispatcher, WorkflowDecodedIntent, WorkflowRpcProvider, WorkflowContext, WorkflowResult, } from './types.js';
|
|
2
2
|
export { signDefiCall, type SignDefiCallInput } from './sign-defi-call.js';
|
|
3
3
|
export { signPermit, type SignPermitInput } from './sign-permit.js';
|
|
4
4
|
export { getAddress } from './get-address.js';
|
|
5
5
|
export { healthCheck } from './health-check.js';
|
|
6
|
+
export { getBalance, type GetBalanceInput } from './get-balance.js';
|
|
7
|
+
export { sendTransfer, type SendTransferInput, sendErc20Transfer, type SendErc20TransferInput } from './send-transfer.js';
|
|
@@ -2,4 +2,6 @@ export { signDefiCall } from './sign-defi-call.js';
|
|
|
2
2
|
export { signPermit } from './sign-permit.js';
|
|
3
3
|
export { getAddress } from './get-address.js';
|
|
4
4
|
export { healthCheck } from './health-check.js';
|
|
5
|
+
export { getBalance } from './get-balance.js';
|
|
6
|
+
export { sendTransfer, sendErc20Transfer } from './send-transfer.js';
|
|
5
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/protocols/workflows/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/protocols/workflows/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,YAAY,EAA0B,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAwB,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAwB,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,YAAY,EAA0B,iBAAiB,EAA+B,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type WorkflowContext, type WorkflowResult } from './types.js';
|
|
2
|
+
export interface SendTransferInput {
|
|
3
|
+
chainId: number;
|
|
4
|
+
to: string;
|
|
5
|
+
value: string;
|
|
6
|
+
}
|
|
7
|
+
export interface SendErc20TransferInput {
|
|
8
|
+
chainId: number;
|
|
9
|
+
token: string;
|
|
10
|
+
to: string;
|
|
11
|
+
amount: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function sendTransfer(ctx: WorkflowContext, input: SendTransferInput): Promise<WorkflowResult>;
|
|
14
|
+
export declare function sendErc20Transfer(ctx: WorkflowContext, input: SendErc20TransferInput): Promise<WorkflowResult>;
|