obtener-configuracion.js•1.7 kB
/**
* Tool 5: Get Chamber Configuration
* Retrieves Chamber contract information and supported tokens
*/
import { CHAMBER_ADDR_MAINNET, CHAMBER_ADDR_SEPOLIA } from '@mistcash/config';
import { ObtenerConfiguracionChamberSchema } from '../utils/validation.js';
// Common Starknet token addresses
const SUPPORTED_TOKENS = {
mainnet: [
'0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7', // ETH
'0x053c91253bc9682c04929ca02ed00b3e423f6710d2ee7e0d5ebb06f3ecf368a8', // USDC
'0x068f5c6a61780768455de69077e07e89787839bf8166decfbf92b645209c0fb8', // USDT
'0x042b8f0484674ca266ac5d08e4ac6a3fe65bd3129795def2dca5c34ecc5f96d2', // DAI
],
sepolia: [
'0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7', // ETH (testnet)
]
};
export async function obtenerConfiguracionChamber(params) {
// Validate parameters
const validated = ObtenerConfiguracionChamberSchema.parse(params);
try {
const contractAddress = validated.network === 'mainnet'
? CHAMBER_ADDR_MAINNET
: CHAMBER_ADDR_SEPOLIA;
const config = {
contract_address: contractAddress,
network: validated.network,
supported_tokens: SUPPORTED_TOKENS[validated.network]
};
return {
success: true,
config,
token_info: {
ETH: 'Native Starknet token',
USDC: 'USD Coin stablecoin',
USDT: 'Tether stablecoin',
DAI: 'DAI stablecoin'
}
};
}
catch (error) {
throw new Error(`Failed to get Chamber configuration: ${error.message}`);
}
}