const ADDRESS_REGEX = /^[1-9A-HJ-NP-Za-km-z]{32,44}$/; // Solana public key format (base58)
const CONTROLLER_ABORT_TIMEOUT_MS = 30000;
const TXID_REGEX = /^[1-9A-HJ-NP-Za-km-z]{87,88}$/; // Solana transaction signature format
const MCP_CLIENT_NAME = "solana-docs-client";
const MCP_CLIENT_VERSION = "1.0.0";
const SOLANA_DOCS_URL = "https://docs.solana.com/";
const MCP_SERVER_NAME = "solana-mcp-server";
const MCP_SERVER_VERSION = "1.0.0";
const DEVNET_RPC_URL = "https://api.devnet.solana.com";
const TESTNET_RPC_URL = "https://api.testnet.solana.com";
const DEVNET_API_BASE_URL = "https://api.devnet.solana.com";
const TESTNET_API_BASE_URL = "https://api.testnet.solana.com";
const DEVNET_CHAIN_ID = "devnet";
const TESTNET_CHAIN_ID = "testnet";
export const solanaConfig = {
general: {
addressRegex: ADDRESS_REGEX,
txidRegex: TXID_REGEX,
},
devnet: {
apiBaseUrl: DEVNET_API_BASE_URL,
controllerAbortTimeout: CONTROLLER_ABORT_TIMEOUT_MS,
rpc: DEVNET_RPC_URL,
chainId: DEVNET_CHAIN_ID,
},
testnet: {
apiBaseUrl: TESTNET_API_BASE_URL,
controllerAbortTimeout: CONTROLLER_ABORT_TIMEOUT_MS,
rpc: TESTNET_RPC_URL,
chainId: TESTNET_CHAIN_ID,
},
mcpClient: {
name: MCP_CLIENT_NAME,
version: MCP_CLIENT_VERSION,
solanaDocsUrl: SOLANA_DOCS_URL,
},
mcpServer: {
name: MCP_SERVER_NAME,
version: MCP_SERVER_VERSION,
},
};