Skip to main content
Glama
obtener-assets.js1.96 kB
/** * Tool 2: Fetch Transaction Assets * Retrieves assets from a transaction (WARNING: shows assets even if spent) */ import { fetchTxAssets } from '@mistcash/sdk'; import { CHAMBER_ADDR_MAINNET, CHAMBER_ADDR_SEPOLIA, CHAMBER_ABI } from '@mistcash/config'; import { ObtenerAssetsTransaccionSchema } from '../utils/validation.js'; import { createProvider, getChamberContract, retryWithBackoff } from '../utils/provider.js'; export async function obtenerAssetsTransaccion(params) { // Validate parameters const validated = ObtenerAssetsTransaccionSchema.parse(params); try { // Create provider const provider = createProvider(validated.provider_rpc_url ? { nodeUrl: validated.provider_rpc_url } : undefined); // Get contract address based on network const network = (process.env.STARKNET_NETWORK || 'mainnet'); const contractAddress = network === 'mainnet' ? CHAMBER_ADDR_MAINNET : CHAMBER_ADDR_SEPOLIA; // Get contract instance const contract = await getChamberContract(provider, contractAddress, CHAMBER_ABI); // Fetch transaction assets with retry logic and 30s timeout const assetsPromise = retryWithBackoff(() => fetchTxAssets(contract, validated.transaction_key, validated.recipient_address)); const timeoutPromise = new Promise((_, reject) => setTimeout(() => reject(new Error('Request timeout after 30s')), 30000)); const assets = await Promise.race([assetsPromise, timeoutPromise]); return { success: true, assets, warning: '⚠️ This function shows assets even if they have already been spent. Use verificar_existencia_transaccion for accurate verification.', transaction_key: validated.transaction_key, recipient_address: validated.recipient_address }; } catch (error) { throw new Error(`Failed to fetch transaction assets: ${error.message}`); } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/joadataarg/Mcp-mistcash'

If you have feedback or need assistance with the MCP directory API, please join our Discord server