Skip to main content
Glama
obtener-assets.ts2.15 kB
/** * Tool 2: Fetch Transaction Assets * Retrieves assets from a transaction (WARNING: shows assets even if spent) */ import { fetchTxAssets } from '@mistcash/sdk'; import { CHAMBER_ABI } from '@mistcash/config'; import { ObtenerAssetsTransaccionSchema } from '../utils/validation.js'; import { createProvider, getChamberContract, retryWithBackoff, getContractAddress } from '../utils/provider.js'; import type { TransactionAssets } from '../types.js'; export async function obtenerAssetsTransaccion(params: unknown) { // 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 (supports custom Madara address) const network = (process.env.STARKNET_NETWORK || 'mainnet') as 'mainnet' | 'sepolia'; const contractAddress = getContractAddress(network); // 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]) as TransactionAssets; 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 as 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