@oobe-protocol-labs/sap-mcp-server 0.9.21 → 0.9.35
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/.env.example +11 -1
- package/CHANGELOG.md +233 -6
- package/README.md +3 -3
- package/USER_DOCS/00_START_HERE.md +9 -1
- package/USER_DOCS/01_HOSTED_REMOTE_MCP.md +1 -1
- package/USER_DOCS/04_CLIENT_CONFIGS.md +3 -3
- package/USER_DOCS/06_DESKTOP_GUI_WIZARD.md +5 -5
- package/config.example.json +1 -1
- package/config.secure-example.json +1 -1
- package/dist/config/env.d.ts +18 -0
- package/dist/config/env.d.ts.map +1 -1
- package/dist/config/env.js +14 -2
- package/dist/config/env.js.map +1 -1
- package/dist/config/mcp-client-injection.js +3 -3
- package/dist/config/paths.d.ts +9 -1
- package/dist/config/paths.d.ts.map +1 -1
- package/dist/config/paths.js +15 -1
- package/dist/config/paths.js.map +1 -1
- package/dist/config/wizard.d.ts.map +1 -1
- package/dist/config/wizard.js +3 -1
- package/dist/config/wizard.js.map +1 -1
- package/dist/core/constants.d.ts +1 -1
- package/dist/core/constants.js +1 -1
- package/dist/core/logger.js +1 -1
- package/dist/memory/async-processor.d.ts +107 -0
- package/dist/memory/async-processor.d.ts.map +1 -0
- package/dist/memory/async-processor.js +204 -0
- package/dist/memory/async-processor.js.map +1 -0
- package/dist/memory/auto-record.d.ts +47 -0
- package/dist/memory/auto-record.d.ts.map +1 -0
- package/dist/memory/auto-record.js +133 -0
- package/dist/memory/auto-record.js.map +1 -0
- package/dist/memory/database.d.ts +103 -0
- package/dist/memory/database.d.ts.map +1 -0
- package/dist/memory/database.js +337 -0
- package/dist/memory/database.js.map +1 -0
- package/dist/memory/hermes-bridge.d.ts +70 -0
- package/dist/memory/hermes-bridge.d.ts.map +1 -0
- package/dist/memory/hermes-bridge.js +155 -0
- package/dist/memory/hermes-bridge.js.map +1 -0
- package/dist/memory/index.d.ts +23 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +22 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/memory-store.d.ts +76 -0
- package/dist/memory/memory-store.d.ts.map +1 -0
- package/dist/memory/memory-store.js +231 -0
- package/dist/memory/memory-store.js.map +1 -0
- package/dist/memory/stream-buffer-store.d.ts +69 -0
- package/dist/memory/stream-buffer-store.d.ts.map +1 -0
- package/dist/memory/stream-buffer-store.js +182 -0
- package/dist/memory/stream-buffer-store.js.map +1 -0
- package/dist/memory/tool-call-store.d.ts +68 -0
- package/dist/memory/tool-call-store.d.ts.map +1 -0
- package/dist/memory/tool-call-store.js +189 -0
- package/dist/memory/tool-call-store.js.map +1 -0
- package/dist/memory/types.d.ts +197 -0
- package/dist/memory/types.d.ts.map +1 -0
- package/dist/memory/types.js +15 -0
- package/dist/memory/types.js.map +1 -0
- package/dist/memory/utils.d.ts +30 -0
- package/dist/memory/utils.d.ts.map +1 -0
- package/dist/memory/utils.js +47 -0
- package/dist/memory/utils.js.map +1 -0
- package/dist/payments/hosted-tool-eligibility.d.ts.map +1 -1
- package/dist/payments/hosted-tool-eligibility.js +4 -6
- package/dist/payments/hosted-tool-eligibility.js.map +1 -1
- package/dist/payments/monetization-gate.d.ts +39 -0
- package/dist/payments/monetization-gate.d.ts.map +1 -1
- package/dist/payments/monetization-gate.js +165 -11
- package/dist/payments/monetization-gate.js.map +1 -1
- package/dist/payments/pricing.d.ts.map +1 -1
- package/dist/payments/pricing.js +69 -0
- package/dist/payments/pricing.js.map +1 -1
- package/dist/payments/x402-paid-call.js +1 -1
- package/dist/premium/builtin-plugins.d.ts +42 -0
- package/dist/premium/builtin-plugins.d.ts.map +1 -1
- package/dist/premium/builtin-plugins.js +91 -10
- package/dist/premium/builtin-plugins.js.map +1 -1
- package/dist/premium/manifest-builder.d.ts.map +1 -1
- package/dist/premium/manifest-builder.js +43 -7
- package/dist/premium/manifest-builder.js.map +1 -1
- package/dist/premium/meme-radar-capabilities.js +9 -9
- package/dist/premium/meme-radar-capabilities.js.map +1 -1
- package/dist/premium/plugin-validator.d.ts.map +1 -1
- package/dist/premium/plugin-validator.js +62 -1
- package/dist/premium/plugin-validator.js.map +1 -1
- package/dist/premium/provider-bridge.d.ts +25 -1
- package/dist/premium/provider-bridge.d.ts.map +1 -1
- package/dist/premium/provider-bridge.js +130 -20
- package/dist/premium/provider-bridge.js.map +1 -1
- package/dist/premium/session-manager.d.ts.map +1 -1
- package/dist/premium/session-manager.js +12 -3
- package/dist/premium/session-manager.js.map +1 -1
- package/dist/premium/tech-fundamentals-capabilities.js +5 -5
- package/dist/premium/tech-fundamentals-capabilities.js.map +1 -1
- package/dist/premium/trading-capabilities.js +5 -5
- package/dist/premium/trading-capabilities.js.map +1 -1
- package/dist/premium/webhook-engine.d.ts.map +1 -1
- package/dist/premium/webhook-engine.js +7 -1
- package/dist/premium/webhook-engine.js.map +1 -1
- package/dist/prompts/context/sap-agent-context.prompt.js +1 -1
- package/dist/prompts/payments/explain-x402-settlement.prompt.js +1 -1
- package/dist/remote/premium-routes.d.ts.map +1 -1
- package/dist/remote/premium-routes.js +3 -2
- package/dist/remote/premium-routes.js.map +1 -1
- package/dist/remote/public-home/sections.d.ts.map +1 -1
- package/dist/remote/public-home/sections.js +2 -3
- package/dist/remote/public-home/sections.js.map +1 -1
- package/dist/remote/public-home/styles.d.ts +1 -1
- package/dist/remote/public-home/styles.js +2 -2
- package/dist/remote/server.d.ts.map +1 -1
- package/dist/remote/server.js +19 -4
- package/dist/remote/server.js.map +1 -1
- package/dist/server/server-metadata.js +1 -1
- package/dist/strategies/strategy-store.d.ts +82 -0
- package/dist/strategies/strategy-store.d.ts.map +1 -0
- package/dist/strategies/strategy-store.js +165 -0
- package/dist/strategies/strategy-store.js.map +1 -0
- package/dist/tools/agent-start-tool.d.ts.map +1 -1
- package/dist/tools/agent-start-tool.js +97 -10
- package/dist/tools/agent-start-tool.js.map +1 -1
- package/dist/tools/client-sdk-tools.d.ts.map +1 -1
- package/dist/tools/client-sdk-tools.js +152 -9
- package/dist/tools/client-sdk-tools.js.map +1 -1
- package/dist/tools/estimate-tool-cost.js +1 -1
- package/dist/tools/estimate-tool-cost.js.map +1 -1
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/magicblock-tools.js +5 -5
- package/dist/tools/magicblock-tools.js.map +1 -1
- package/dist/tools/memory-tools.d.ts +26 -0
- package/dist/tools/memory-tools.d.ts.map +1 -0
- package/dist/tools/memory-tools.js +533 -0
- package/dist/tools/memory-tools.js.map +1 -0
- package/dist/tools/perp-tools.d.ts +7 -9
- package/dist/tools/perp-tools.d.ts.map +1 -1
- package/dist/tools/perp-tools.js +386 -367
- package/dist/tools/perp-tools.js.map +1 -1
- package/dist/tools/premium-tools.d.ts.map +1 -1
- package/dist/tools/premium-tools.js +8 -2
- package/dist/tools/premium-tools.js.map +1 -1
- package/dist/tools/profile-tools.d.ts.map +1 -1
- package/dist/tools/profile-tools.js +18 -1
- package/dist/tools/profile-tools.js.map +1 -1
- package/dist/tools/quick-context-tool.d.ts.map +1 -1
- package/dist/tools/quick-context-tool.js +100 -9
- package/dist/tools/quick-context-tool.js.map +1 -1
- package/dist/tools/register-tools.d.ts.map +1 -1
- package/dist/tools/register-tools.js +3 -0
- package/dist/tools/register-tools.js.map +1 -1
- package/dist/tools/sap-sdk-tools.js +3 -3
- package/dist/tools/sap-sdk-tools.js.map +1 -1
- package/dist/tools/session-context-packet.d.ts +19 -0
- package/dist/tools/session-context-packet.d.ts.map +1 -0
- package/dist/tools/session-context-packet.js +256 -0
- package/dist/tools/session-context-packet.js.map +1 -0
- package/dist/tools/skills-tools.d.ts +10 -0
- package/dist/tools/skills-tools.d.ts.map +1 -1
- package/dist/tools/skills-tools.js +19 -0
- package/dist/tools/skills-tools.js.map +1 -1
- package/dist/tools/transaction-tools.d.ts +1 -0
- package/dist/tools/transaction-tools.d.ts.map +1 -1
- package/dist/tools/transaction-tools.js +248 -9
- package/dist/tools/transaction-tools.js.map +1 -1
- package/dist/tools/x402-paid-call-tool.d.ts.map +1 -1
- package/dist/tools/x402-paid-call-tool.js +55 -21
- package/dist/tools/x402-paid-call-tool.js.map +1 -1
- package/dist/wizard-core/desktop-flow.d.ts.map +1 -1
- package/dist/wizard-core/desktop-flow.js +4 -2
- package/dist/wizard-core/desktop-flow.js.map +1 -1
- package/docs/06_PAYMENTS_X402_AND_PAYSH.md +14 -5
- package/docs/07_ENDPOINTS_AND_CLIENTS.md +1 -1
- package/docs/09_TOOLS_SKILLS_AND_AGENT_GUIDE.md +13 -5
- package/docs/13_BOUNTY_PROGRAM_PROPOSAL.md +1 -1
- package/docs/14_DESKTOP_WIZARD_RELEASE.md +3 -3
- package/docs/15_DASHBOARD_SCREENSHARE_SCRIPT.md +1 -1
- package/docs/BRANCH_AND_CI.md +2 -2
- package/docs/README.md +1 -1
- package/package.json +3 -1
- package/server.json +3 -3
- package/skills/README.md +1 -1
- package/skills/sap-agentkit/SKILL.md +1 -2
- package/skills/sap-defi/SKILL.md +31 -2
- package/skills/sap-mcp/SKILL.md +24 -13
- package/skills/sap-mcp/TOOL_REFERENCE.md +2 -4
- package/skills/sap-payments-x402/SKILL.md +15 -3
- package/assets/logos/drift.svg +0 -12
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @module transaction-tools
|
|
3
3
|
* @description MCP tools for decoding, previewing, signing, and submitting Solana transactions.
|
|
4
4
|
*/
|
|
5
|
-
import { LAMPORTS_PER_SOL, SystemProgram, Transaction, VersionedTransaction } from '@solana/web3.js';
|
|
5
|
+
import { LAMPORTS_PER_SOL, PublicKey, SystemProgram, Transaction, TransactionInstruction, VersionedTransaction } from '@solana/web3.js';
|
|
6
6
|
import bs58 from 'bs58';
|
|
7
7
|
import { registerTool } from '../adapters/mcp/sdk-compat.js';
|
|
8
8
|
import { createTextResponse } from '../adapters/mcp/tool-response.js';
|
|
@@ -352,9 +352,6 @@ export function describeTransaction(transaction, context) {
|
|
|
352
352
|
* @returns Agent-readable finalization result without secret material.
|
|
353
353
|
*/
|
|
354
354
|
export async function finalizeTransactionWithLocalSigner(context, input) {
|
|
355
|
-
if (!context.signer) {
|
|
356
|
-
throw new Error('No local signer configured. Run the SAP MCP wizard full setup or repair the local sap_payments bridge, then restart the agent runtime.');
|
|
357
|
-
}
|
|
358
355
|
if (input.confirm !== true) {
|
|
359
356
|
throw new Error('confirm: true is required before the local SAP MCP signer can finalize a transaction.');
|
|
360
357
|
}
|
|
@@ -362,29 +359,61 @@ export async function finalizeTransactionWithLocalSigner(context, input) {
|
|
|
362
359
|
if (!transactionText) {
|
|
363
360
|
throw new Error('transaction or transactionBase64 is required.');
|
|
364
361
|
}
|
|
362
|
+
// Resolve signer: use signerProfile if provided, otherwise fall back to the
|
|
363
|
+
// active context signer. This eliminates the need to switch .active-profile
|
|
364
|
+
// manually — multiple profiles can coexist in the same session.
|
|
365
|
+
let signer = context.signer;
|
|
366
|
+
let signerProfileName;
|
|
367
|
+
if (input.signerProfile) {
|
|
368
|
+
const { loadProfileConfig } = await import('../config/profiles.js');
|
|
369
|
+
const { resolveSigner } = await import('../signer/signer-resolver.js');
|
|
370
|
+
const profileConfig = loadProfileConfig(input.signerProfile);
|
|
371
|
+
if (!profileConfig) {
|
|
372
|
+
throw new Error(`signerProfile "${input.signerProfile}" not found. ` +
|
|
373
|
+
`Available profiles can be listed with sap_profile_list (local mode) or by checking ~/.config/mcp-sap/config-*.json files. ` +
|
|
374
|
+
`If the hosted server is accountless, use the local sap_payments bridge to inspect profiles.`);
|
|
375
|
+
}
|
|
376
|
+
// FullConfig does not include monetization — merge with the active context
|
|
377
|
+
// config to provide the required SapMcpConfig shape for resolveSigner.
|
|
378
|
+
const mergedConfig = { ...context.config, ...profileConfig };
|
|
379
|
+
const signerResult = await resolveSigner(mergedConfig);
|
|
380
|
+
if (!signerResult.signer) {
|
|
381
|
+
throw new Error(`signerProfile "${input.signerProfile}" has no signer configured. ` +
|
|
382
|
+
`Ensure the profile config has a walletPath or externalSignerUrl set. ` +
|
|
383
|
+
`Run: sap-mcp-config wizard --profile ${input.signerProfile} to configure.`);
|
|
384
|
+
}
|
|
385
|
+
signer = signerResult.signer;
|
|
386
|
+
signerProfileName = input.signerProfile;
|
|
387
|
+
}
|
|
388
|
+
if (!signer) {
|
|
389
|
+
throw new Error('No local signer configured. Run the SAP MCP wizard full setup or repair the local sap_payments bridge, then restart the agent runtime.');
|
|
390
|
+
}
|
|
365
391
|
const encoding = input.encoding ?? 'base64';
|
|
366
392
|
const transaction = deserializeTransaction(transactionText, encoding);
|
|
367
393
|
const preview = describeTransaction(transaction, context);
|
|
368
|
-
const nativeTransfer = await assertTransactionPolicy(context, transaction,
|
|
369
|
-
const signedTransaction = await
|
|
394
|
+
const nativeTransfer = await assertTransactionPolicy(context, transaction, signer.publicKey);
|
|
395
|
+
const signedTransaction = await signer.signTransaction(transaction);
|
|
370
396
|
const signedTransactionBase64 = serializeTransaction(signedTransaction);
|
|
371
397
|
const result = {
|
|
372
398
|
success: true,
|
|
373
399
|
action: input.submit === true ? 'preview-sign-submit' : 'preview-sign',
|
|
374
400
|
submitted: false,
|
|
375
|
-
signerPublicKey:
|
|
401
|
+
signerPublicKey: signer.publicKey.toBase58(),
|
|
402
|
+
signerProfile: signerProfileName ?? null,
|
|
376
403
|
nativeTransferSol: nativeTransfer.sol,
|
|
377
404
|
preview: {
|
|
378
405
|
...preview,
|
|
379
406
|
canSign: true,
|
|
380
|
-
signer:
|
|
407
|
+
signer: signer.publicKey.toBase58(),
|
|
408
|
+
signerProfile: signerProfileName ?? null,
|
|
381
409
|
},
|
|
382
410
|
signedTransaction: signedTransactionBase64,
|
|
383
411
|
encoding: 'base64',
|
|
384
412
|
audit: {
|
|
385
413
|
intentId: input.intentId ?? `sap-tx-${Date.now()}`,
|
|
386
414
|
profileMode: context.config.mode,
|
|
387
|
-
|
|
415
|
+
signerProfile: signerProfileName ?? null,
|
|
416
|
+
signerPublicKey: signer.publicKey.toBase58(),
|
|
388
417
|
previewed: true,
|
|
389
418
|
signedLocally: true,
|
|
390
419
|
submitted: false,
|
|
@@ -553,5 +582,215 @@ export function registerTransactionTools(server, context) {
|
|
|
553
582
|
return createTextResponse(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`, { isError: true });
|
|
554
583
|
}
|
|
555
584
|
});
|
|
585
|
+
// ── Native SOL Transfer Builder ───────────────────────────────────────────
|
|
586
|
+
//
|
|
587
|
+
// There is no hosted builder for native SOL transfers — `spl-token_transferSol`
|
|
588
|
+
// is local-signer-only and cannot run on the hosted accountless server. This
|
|
589
|
+
// builder creates an unsigned SystemProgram.transfer transaction that the
|
|
590
|
+
// agent signs locally via sap_payments_finalize_transaction or
|
|
591
|
+
// sap_sign_transaction → sap_submit_signed_transaction.
|
|
592
|
+
//
|
|
593
|
+
registerTool(server, 'sap_build_sol_transfer', {
|
|
594
|
+
title: 'Build Native SOL Transfer Transaction',
|
|
595
|
+
description: 'Build an unsigned native SOL transfer transaction using SystemProgram.transfer. Returns serialized base64 transaction for the agent to sign locally with sap_payments_finalize_transaction or sap_sign_transaction → sap_submit_signed_transaction. This is the hosted-safe equivalent of spl-token_transferSol (which is local-signer-only and cannot run on the hosted accountless server). Builder fee applies.',
|
|
596
|
+
inputSchema: {
|
|
597
|
+
fromPubkey: {
|
|
598
|
+
type: 'string',
|
|
599
|
+
description: 'Sender public key in base58. This is the fee payer and must sign the transaction locally.',
|
|
600
|
+
},
|
|
601
|
+
toPubkey: {
|
|
602
|
+
type: 'string',
|
|
603
|
+
description: 'Recipient public key in base58.',
|
|
604
|
+
},
|
|
605
|
+
lamports: {
|
|
606
|
+
type: 'number',
|
|
607
|
+
description: 'Amount in lamports (1 SOL = 1,000,000,000 lamports). Use sap_estimate_tool_cost to check the builder fee before calling.',
|
|
608
|
+
},
|
|
609
|
+
},
|
|
610
|
+
}, async (input) => {
|
|
611
|
+
try {
|
|
612
|
+
const raw = input;
|
|
613
|
+
const fromPubkey = typeof raw['fromPubkey'] === 'string' ? raw['fromPubkey'] : undefined;
|
|
614
|
+
const toPubkey = typeof raw['toPubkey'] === 'string' ? raw['toPubkey'] : undefined;
|
|
615
|
+
const lamports = typeof raw['lamports'] === 'number' ? raw['lamports'] : undefined;
|
|
616
|
+
if (!fromPubkey || !toPubkey || lamports === undefined) {
|
|
617
|
+
throw new Error('fromPubkey, toPubkey, and lamports are required.');
|
|
618
|
+
}
|
|
619
|
+
// Validate public keys.
|
|
620
|
+
const fromKey = new PublicKey(fromPubkey);
|
|
621
|
+
const toKey = new PublicKey(toPubkey);
|
|
622
|
+
if (lamports <= 0) {
|
|
623
|
+
throw new Error('lamports must be a positive number.');
|
|
624
|
+
}
|
|
625
|
+
// Build the SystemProgram.transfer instruction.
|
|
626
|
+
const instruction = SystemProgram.transfer({
|
|
627
|
+
fromPubkey: fromKey,
|
|
628
|
+
toPubkey: toKey,
|
|
629
|
+
lamports,
|
|
630
|
+
});
|
|
631
|
+
// Create a legacy transaction with the transfer instruction.
|
|
632
|
+
// The latest blockhash is fetched from the configured RPC.
|
|
633
|
+
const connection = context.connection;
|
|
634
|
+
const blockhash = await connection.getLatestBlockhash();
|
|
635
|
+
const transaction = new Transaction({
|
|
636
|
+
recentBlockhash: blockhash.blockhash,
|
|
637
|
+
feePayer: fromKey,
|
|
638
|
+
});
|
|
639
|
+
transaction.add(instruction);
|
|
640
|
+
// Serialize as base64 for the agent to sign locally.
|
|
641
|
+
const serialized = transaction.serialize({
|
|
642
|
+
requireAllSignatures: false,
|
|
643
|
+
verifySignatures: false,
|
|
644
|
+
});
|
|
645
|
+
const transactionBase64 = serialized.toString('base64');
|
|
646
|
+
return createTextResponse(JSON.stringify({
|
|
647
|
+
success: true,
|
|
648
|
+
transactionBase64,
|
|
649
|
+
encoding: 'base64',
|
|
650
|
+
instructions: [
|
|
651
|
+
{
|
|
652
|
+
program: 'SystemProgram',
|
|
653
|
+
type: 'Transfer',
|
|
654
|
+
from: fromPubkey,
|
|
655
|
+
to: toPubkey,
|
|
656
|
+
lamports,
|
|
657
|
+
solAmount: (lamports / LAMPORTS_PER_SOL).toFixed(9),
|
|
658
|
+
},
|
|
659
|
+
],
|
|
660
|
+
feePayer: fromPubkey,
|
|
661
|
+
unsigned: true,
|
|
662
|
+
nextSteps: 'Sign locally with sap_payments_finalize_transaction (hosted mode) or sap_sign_transaction → sap_submit_signed_transaction (local mode). Do not create temporary signing scripts or read keypair JSON.',
|
|
663
|
+
}, null, 2));
|
|
664
|
+
}
|
|
665
|
+
catch (error) {
|
|
666
|
+
return createTextResponse(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`, { isError: true });
|
|
667
|
+
}
|
|
668
|
+
});
|
|
669
|
+
// ── SPL Token Transfer Builder ─────────────────────────────────────────────
|
|
670
|
+
//
|
|
671
|
+
// `spl-token_transfer` is local-signer-only and cannot run on the hosted
|
|
672
|
+
// accountless server. This builder creates an unsigned SPL token transfer
|
|
673
|
+
// transaction that the agent signs locally via sap_payments_finalize_transaction.
|
|
674
|
+
//
|
|
675
|
+
registerTool(server, 'sap_build_spl_transfer', {
|
|
676
|
+
title: 'Build SPL Token Transfer Transaction',
|
|
677
|
+
description: 'Build an unsigned SPL token transfer transaction. Returns serialized base64 transaction for the agent to sign locally with sap_payments_finalize_transaction or sap_sign_transaction → sap_submit_signed_transaction. This is the hosted-safe equivalent of spl-token_transfer (which is local-signer-only and cannot run on the hosted accountless server). Builder fee applies.',
|
|
678
|
+
inputSchema: {
|
|
679
|
+
sourceOwner: {
|
|
680
|
+
type: 'string',
|
|
681
|
+
description: 'Source token account owner public key in base58. This is the fee payer and must sign the transaction locally.',
|
|
682
|
+
},
|
|
683
|
+
destinationOwner: {
|
|
684
|
+
type: 'string',
|
|
685
|
+
description: 'Destination wallet public key in base58. The destination ATA will be created if it does not exist.',
|
|
686
|
+
},
|
|
687
|
+
mint: {
|
|
688
|
+
type: 'string',
|
|
689
|
+
description: 'SPL token mint address in base58.',
|
|
690
|
+
},
|
|
691
|
+
amount: {
|
|
692
|
+
type: 'number',
|
|
693
|
+
description: 'Amount of tokens to transfer in base units (respect the mint decimals).',
|
|
694
|
+
},
|
|
695
|
+
decimals: {
|
|
696
|
+
type: 'number',
|
|
697
|
+
description: 'Token decimals for the mint. Used for display purposes only — the on-chain amount is in base units.',
|
|
698
|
+
},
|
|
699
|
+
},
|
|
700
|
+
}, async (input) => {
|
|
701
|
+
try {
|
|
702
|
+
const raw = input;
|
|
703
|
+
const sourceOwner = typeof raw['sourceOwner'] === 'string' ? raw['sourceOwner'] : undefined;
|
|
704
|
+
const destinationOwner = typeof raw['destinationOwner'] === 'string' ? raw['destinationOwner'] : undefined;
|
|
705
|
+
const mint = typeof raw['mint'] === 'string' ? raw['mint'] : undefined;
|
|
706
|
+
const amount = typeof raw['amount'] === 'number' ? raw['amount'] : undefined;
|
|
707
|
+
const decimals = typeof raw['decimals'] === 'number' ? raw['decimals'] : undefined;
|
|
708
|
+
if (!sourceOwner || !destinationOwner || !mint || amount === undefined) {
|
|
709
|
+
throw new Error('sourceOwner, destinationOwner, mint, and amount are required.');
|
|
710
|
+
}
|
|
711
|
+
if (amount <= 0) {
|
|
712
|
+
throw new Error('amount must be a positive number.');
|
|
713
|
+
}
|
|
714
|
+
// Build SPL token transfer instructions using @solana/web3.js only.
|
|
715
|
+
// We construct the raw instruction data manually to avoid depending on
|
|
716
|
+
// @solana/spl-token (not in package.json).
|
|
717
|
+
const sourceOwnerKey = new PublicKey(sourceOwner);
|
|
718
|
+
const destOwnerKey = new PublicKey(destinationOwner);
|
|
719
|
+
const mintKey = new PublicKey(mint);
|
|
720
|
+
// Derive Associated Token Account addresses using findProgramAddress.
|
|
721
|
+
const ASSOCIATED_TOKEN_PROGRAM_ID = new PublicKey('ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL');
|
|
722
|
+
const TOKEN_PROGRAM_ID = new PublicKey('TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA');
|
|
723
|
+
// ATA = PDA(['AssociatedTokenAddress', owner, tokenProgram, mint])
|
|
724
|
+
const [sourceAta] = PublicKey.findProgramAddressSync([Buffer.from('AssociatedTokenAddress'), sourceOwnerKey.toBuffer(), TOKEN_PROGRAM_ID.toBuffer(), mintKey.toBuffer()], ASSOCIATED_TOKEN_PROGRAM_ID);
|
|
725
|
+
const [destAta] = PublicKey.findProgramAddressSync([Buffer.from('AssociatedTokenAddress'), destOwnerKey.toBuffer(), TOKEN_PROGRAM_ID.toBuffer(), mintKey.toBuffer()], ASSOCIATED_TOKEN_PROGRAM_ID);
|
|
726
|
+
// CreateAssociatedTokenAccountIdempotent instruction (0x1e data).
|
|
727
|
+
const createAtaInstruction = new TransactionInstruction({
|
|
728
|
+
programId: ASSOCIATED_TOKEN_PROGRAM_ID,
|
|
729
|
+
keys: [
|
|
730
|
+
{ pubkey: sourceOwnerKey, isSigner: true, isWritable: true },
|
|
731
|
+
{ pubkey: destAta, isSigner: false, isWritable: true },
|
|
732
|
+
{ pubkey: destOwnerKey, isSigner: false, isWritable: false },
|
|
733
|
+
{ pubkey: mintKey, isSigner: false, isWritable: false },
|
|
734
|
+
{ pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
|
|
735
|
+
{ pubkey: TOKEN_PROGRAM_ID, isSigner: false, isWritable: false },
|
|
736
|
+
],
|
|
737
|
+
data: Buffer.from([0x1e]),
|
|
738
|
+
});
|
|
739
|
+
// Token Transfer instruction (0x03 + 64-bit amount in little-endian).
|
|
740
|
+
const transferData = Buffer.alloc(9);
|
|
741
|
+
transferData.writeUInt8(3, 0); // Transfer instruction discriminator
|
|
742
|
+
transferData.writeBigUInt64LE(BigInt(amount), 1);
|
|
743
|
+
const transferInstruction = new TransactionInstruction({
|
|
744
|
+
programId: TOKEN_PROGRAM_ID,
|
|
745
|
+
keys: [
|
|
746
|
+
{ pubkey: sourceAta, isSigner: false, isWritable: true },
|
|
747
|
+
{ pubkey: destAta, isSigner: false, isWritable: true },
|
|
748
|
+
{ pubkey: sourceOwnerKey, isSigner: true, isWritable: false },
|
|
749
|
+
],
|
|
750
|
+
data: transferData,
|
|
751
|
+
});
|
|
752
|
+
// Fetch latest blockhash and build transaction.
|
|
753
|
+
const connection = context.connection;
|
|
754
|
+
const blockhash = await connection.getLatestBlockhash();
|
|
755
|
+
const transaction = new Transaction({
|
|
756
|
+
recentBlockhash: blockhash.blockhash,
|
|
757
|
+
feePayer: sourceOwnerKey,
|
|
758
|
+
});
|
|
759
|
+
transaction.add(createAtaInstruction);
|
|
760
|
+
transaction.add(transferInstruction);
|
|
761
|
+
const serialized = transaction.serialize({
|
|
762
|
+
requireAllSignatures: false,
|
|
763
|
+
verifySignatures: false,
|
|
764
|
+
});
|
|
765
|
+
const transactionBase64 = serialized.toString('base64');
|
|
766
|
+
return createTextResponse(JSON.stringify({
|
|
767
|
+
success: true,
|
|
768
|
+
transactionBase64,
|
|
769
|
+
encoding: 'base64',
|
|
770
|
+
instructions: [
|
|
771
|
+
{
|
|
772
|
+
program: 'SPL Token',
|
|
773
|
+
type: 'CreateAssociatedTokenAccountIdempotent',
|
|
774
|
+
destinationAta: destAta.toBase58(),
|
|
775
|
+
},
|
|
776
|
+
{
|
|
777
|
+
program: 'SPL Token',
|
|
778
|
+
type: 'Transfer',
|
|
779
|
+
sourceAta: sourceAta.toBase58(),
|
|
780
|
+
destinationAta: destAta.toBase58(),
|
|
781
|
+
mint,
|
|
782
|
+
amount,
|
|
783
|
+
decimals: decimals ?? undefined,
|
|
784
|
+
},
|
|
785
|
+
],
|
|
786
|
+
feePayer: sourceOwner,
|
|
787
|
+
unsigned: true,
|
|
788
|
+
nextSteps: 'Sign locally with sap_payments_finalize_transaction (hosted mode) or sap_sign_transaction → sap_submit_signed_transaction (local mode). Do not create temporary signing scripts or read keypair JSON.',
|
|
789
|
+
}, null, 2));
|
|
790
|
+
}
|
|
791
|
+
catch (error) {
|
|
792
|
+
return createTextResponse(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`, { isError: true });
|
|
793
|
+
}
|
|
794
|
+
});
|
|
556
795
|
}
|
|
557
796
|
//# sourceMappingURL=transaction-tools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction-tools.js","sourceRoot":"","sources":["../../src/tools/transaction-tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"transaction-tools.js","sourceRoot":"","sources":["../../src/tools/transaction-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x402-paid-call-tool.d.ts","sourceRoot":"","sources":["../../src/tools/x402-paid-call-tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAIxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"x402-paid-call-tool.d.ts","sourceRoot":"","sources":["../../src/tools/x402-paid-call-tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAIxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AA4MtD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CActF"}
|
|
@@ -633,6 +633,10 @@ function registerPaymentsFinalizeTransactionTool(server, context) {
|
|
|
633
633
|
type: 'boolean',
|
|
634
634
|
description: 'Must be true. Confirms the user allows the local SAP MCP signer to sign this transaction.',
|
|
635
635
|
},
|
|
636
|
+
signerProfile: {
|
|
637
|
+
type: 'string',
|
|
638
|
+
description: 'Optional profile name to use for signing instead of the global active profile. When provided, the bridge loads config-<signerProfile>.json and uses its keypair. This eliminates the need to switch .active-profile manually — multiple profiles can coexist in the same session. Falls back to the active profile if omitted.',
|
|
639
|
+
},
|
|
636
640
|
intentId: {
|
|
637
641
|
type: 'string',
|
|
638
642
|
description: 'Optional caller-provided id used to bind preview, signature, submission, and audit output.',
|
|
@@ -704,26 +708,55 @@ function registerPaymentsProfileCurrentTool(server, context) {
|
|
|
704
708
|
idempotentHint: true,
|
|
705
709
|
openWorldHint: false,
|
|
706
710
|
},
|
|
707
|
-
}, async () =>
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
711
|
+
}, async () => {
|
|
712
|
+
// Re-read the active profile on every call to avoid stale cache.
|
|
713
|
+
// The context.signer was resolved at startup from the then-active profile;
|
|
714
|
+
// if the user switched .active-profile manually, the cached signer is stale.
|
|
715
|
+
// We re-read .active-profile and resolve the current signer on demand.
|
|
716
|
+
const currentProfile = getActiveProfile();
|
|
717
|
+
const currentConfigPath = getProfileConfigPath(currentProfile);
|
|
718
|
+
let currentSignerPubkey = context.signer?.publicKey.toBase58();
|
|
719
|
+
let currentWalletPath = context.config.walletPath;
|
|
720
|
+
// Always try to re-resolve the signer from the active profile to avoid
|
|
721
|
+
// stale cache. If .active-profile was switched manually after startup,
|
|
722
|
+
// the context.signer reflects the OLD profile. We re-read and re-resolve.
|
|
723
|
+
try {
|
|
724
|
+
const { loadProfileConfig } = await import('../config/profiles.js');
|
|
725
|
+
const { resolveSigner } = await import('../signer/signer-resolver.js');
|
|
726
|
+
const profileConfig = loadProfileConfig(currentProfile);
|
|
727
|
+
if (profileConfig) {
|
|
728
|
+
const signerResult = await resolveSigner({ ...context.config, ...profileConfig });
|
|
729
|
+
if (signerResult.signer) {
|
|
730
|
+
currentSignerPubkey = signerResult.signer.publicKey.toBase58();
|
|
731
|
+
}
|
|
732
|
+
currentWalletPath = profileConfig.walletPath;
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
catch {
|
|
736
|
+
// If we can't resolve the signer for the current profile, fall back
|
|
737
|
+
// to the cached signer — better than crashing.
|
|
738
|
+
}
|
|
739
|
+
return createTextResponse(JSON.stringify({
|
|
740
|
+
serverRole: 'local-sap-payments-bridge',
|
|
741
|
+
activeProfile: currentProfile,
|
|
742
|
+
configPath: currentConfigPath,
|
|
743
|
+
mode: context.config.mode,
|
|
744
|
+
network: networkFromRpcUrl(context.config.rpcUrl),
|
|
745
|
+
rpcUrl: redactUrl(context.config.rpcUrl),
|
|
746
|
+
programId: context.config.programId,
|
|
747
|
+
agentPubkey: context.config.agentPubkey,
|
|
748
|
+
walletPath: currentWalletPath,
|
|
749
|
+
walletPathConfigured: Boolean(currentWalletPath),
|
|
750
|
+
signerConfigured: Boolean(currentSignerPubkey),
|
|
751
|
+
signerPublicKey: currentSignerPubkey,
|
|
752
|
+
localProfileVisibility: 'visible-to-local-sap-payments-bridge',
|
|
753
|
+
hostedRemoteVisibility: 'not-visible-to-hosted-accountless-server',
|
|
754
|
+
secretMaterial: 'keypair-bytes-never-returned',
|
|
755
|
+
recommendedPaidTool: 'sap_payments_call_paid_tool',
|
|
756
|
+
recommendedReadinessTool: 'sap_payments_readiness',
|
|
757
|
+
agentInstruction: 'For wallet/profile questions, trust this local sap_payments profile result over the remote hosted sap_profile_current result. For paid/write workflows call sap_payments_readiness first. The hosted SAP MCP server is intentionally accountless. If you need to sign with a specific profile, use signerProfile param on sap_payments_finalize_transaction instead of switching .active-profile.',
|
|
758
|
+
}, null, 2));
|
|
759
|
+
});
|
|
727
760
|
}
|
|
728
761
|
function registerPaymentsReadinessTool(server) {
|
|
729
762
|
registerTool(server, 'sap_payments_readiness', {
|
|
@@ -802,7 +835,7 @@ function registerPaymentsPrepareChallengeTool(server) {
|
|
|
802
835
|
body: paidCallInputSchema.body,
|
|
803
836
|
maxPriceUsd: {
|
|
804
837
|
type: 'number',
|
|
805
|
-
description: 'Maximum accepted x402 payment amount in USD. The call aborts if the challenge exceeds this cap. Common tool costs: read-premium ~$0.001, builder ~$0.008, standard value-action ~$0.09, heavy value-action ~$0.
|
|
838
|
+
description: 'Maximum accepted x402 payment amount in USD. The call aborts if the challenge exceeds this cap. Common tool costs: read-premium ~$0.001, builder ~$0.008, standard value-action ~$0.09, heavy value-action ~$0.05. Set to at least the expected tier price — e.g. maxPriceUsd: 0.12 for standard swaps, 0.06 for heavy private execution, 0.01 for reads. If omitted, defaults to a very low cap that may abort value-action calls silently.',
|
|
806
839
|
},
|
|
807
840
|
},
|
|
808
841
|
outputSchema: {
|
|
@@ -1072,6 +1105,7 @@ function parseFinalizeTransactionInput(input) {
|
|
|
1072
1105
|
submitViaRelay: record.submitViaRelay !== false,
|
|
1073
1106
|
submitRelayUrl: record.submitRelayUrl,
|
|
1074
1107
|
confirm: record.confirm === true,
|
|
1108
|
+
signerProfile: typeof record.signerProfile === 'string' ? record.signerProfile : undefined,
|
|
1075
1109
|
intentId: record.intentId,
|
|
1076
1110
|
};
|
|
1077
1111
|
}
|