@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.
Files changed (54) hide show
  1. package/.claude-plugin/plugin.json +4 -2
  2. package/dist/agentic/cli.d.ts +1 -0
  3. package/dist/agentic/cli.js +11 -2
  4. package/dist/agentic/cli.js.map +1 -1
  5. package/dist/agentic/mcp/server.js +1 -0
  6. package/dist/agentic/mcp/server.js.map +1 -1
  7. package/dist/agentic/mcp/tools/get-balance.d.ts +3 -0
  8. package/dist/agentic/mcp/tools/get-balance.js +29 -0
  9. package/dist/agentic/mcp/tools/get-balance.js.map +1 -0
  10. package/dist/agentic/mcp/tools/index.d.ts +1 -1
  11. package/dist/agentic/mcp/tools/index.js +6 -0
  12. package/dist/agentic/mcp/tools/index.js.map +1 -1
  13. package/dist/agentic/mcp/tools/send-erc20-transfer.d.ts +3 -0
  14. package/dist/agentic/mcp/tools/send-erc20-transfer.js +33 -0
  15. package/dist/agentic/mcp/tools/send-erc20-transfer.js.map +1 -0
  16. package/dist/agentic/mcp/tools/send-transfer.d.ts +3 -0
  17. package/dist/agentic/mcp/tools/send-transfer.js +30 -0
  18. package/dist/agentic/mcp/tools/send-transfer.js.map +1 -0
  19. package/dist/agentic/mcp/tools/shared.d.ts +20 -0
  20. package/dist/cli/index.js +0 -0
  21. package/dist/index.d.ts +2 -0
  22. package/dist/index.js +2 -0
  23. package/dist/index.js.map +1 -1
  24. package/dist/protocols/catalog.d.ts +13 -0
  25. package/dist/protocols/catalog.js +7 -0
  26. package/dist/protocols/catalog.js.map +1 -1
  27. package/dist/protocols/index.d.ts +1 -1
  28. package/dist/protocols/index.js +1 -1
  29. package/dist/protocols/index.js.map +1 -1
  30. package/dist/protocols/workflows/get-balance.d.ts +7 -0
  31. package/dist/protocols/workflows/get-balance.js +90 -0
  32. package/dist/protocols/workflows/get-balance.js.map +1 -0
  33. package/dist/protocols/workflows/index.d.ts +3 -1
  34. package/dist/protocols/workflows/index.js +2 -0
  35. package/dist/protocols/workflows/index.js.map +1 -1
  36. package/dist/protocols/workflows/send-transfer.d.ts +14 -0
  37. package/dist/protocols/workflows/send-transfer.js +349 -0
  38. package/dist/protocols/workflows/send-transfer.js.map +1 -0
  39. package/dist/protocols/workflows/sign-defi-call.d.ts +1 -1
  40. package/dist/protocols/workflows/sign-defi-call.js +2 -1
  41. package/dist/protocols/workflows/sign-defi-call.js.map +1 -1
  42. package/dist/protocols/workflows/sign-permit.d.ts +1 -1
  43. package/dist/protocols/workflows/sign-permit.js +2 -1
  44. package/dist/protocols/workflows/sign-permit.js.map +1 -1
  45. package/dist/protocols/workflows/types.d.ts +26 -0
  46. package/dist/protocols/workflows/types.js +12 -1
  47. package/dist/protocols/workflows/types.js.map +1 -1
  48. package/dist/rpc/index.d.ts +1 -0
  49. package/dist/rpc/index.js +2 -0
  50. package/dist/rpc/index.js.map +1 -0
  51. package/dist/rpc/viem-rpc-provider.d.ts +29 -0
  52. package/dist/rpc/viem-rpc-provider.js +141 -0
  53. package/dist/rpc/viem-rpc-provider.js.map +1 -0
  54. 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.0",
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": ["dist/agentic/cli.js"]
16
+ "args": [
17
+ "dist/agentic/cli.js"
18
+ ]
17
19
  }
18
20
  }
19
21
  }
@@ -5,4 +5,5 @@ export declare function parseArgs(argv: string[]): {
5
5
  expectedAddress?: string;
6
6
  unsafeRawSign: boolean;
7
7
  policyConfig?: string;
8
+ rpcUrl?: string;
8
9
  };
@@ -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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/agentic/cli.ts"],"names":[],"mappings":"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"}
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;KAClF,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"}
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,3 @@
1
+ import { type McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import { type ToolContext } from './shared.js';
3
+ export declare function registerGetBalance(server: McpServer, ctx: ToolContext): void;
@@ -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;AAQ7D,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;IAElC,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"}
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,3 @@
1
+ import { type McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import { type ToolContext } from './shared.js';
3
+ export declare function registerSendErc20Transfer(server: McpServer, ctx: ToolContext): void;
@@ -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,3 @@
1
+ import { type McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import { type ToolContext } from './shared.js';
3
+ export declare function registerSendTransfer(server: McpServer, ctx: ToolContext): void;
@@ -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;AAQ/B,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,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';
@@ -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,GAWnC,MAAM,sBAAsB,CAAC"}
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":"AAWA,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"}
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>;