Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

149
Vistas
Axios y TypeScript: devuelva el objeto de matriz con solo los accesorios especificados

Estoy tratando de crear una API que obtenga los tokens ERC20 en mi saldo. Para esto, estoy usando nextjs y axios con TypeScript.

El problema que tengo es que la respuesta emitida por mi punto final devuelve demasiados datos, en lugar de los únicos 3 accesorios definidos en mi tipo de Token . Aquí es cómo va:

util/api.ts

 import axios from 'axios'; import console from 'console'; type Token = { contractAddress: string; tokenName: string; tokenSymbol: string; }; async function getTokens(walletAddress: string) { const params = { action: 'tokentx', address: walletAddress, offset: 5, startblock: 0, endblock: 999999999, sort: 'asc', apikey: 'XXXXX' } try { const response = await axios.request<Token[]>({ url: 'https://api.etherscan.io/api?module=account', params: params }).then((response) => { return response.data }); return response } catch (error) { if (axios.isAxiosError(error)) { console.log('error message: ', error.message); return error.message; } else { console.log('unexpected error: ', error); return 'An unexpected error occurred'; } } } export async function getWalletBalance(walletAddress: string) { let tokens = await getTokens(walletAddress) return tokens }

páginas/api/saldos/[red]/[wallet.ts]

 import { NextApiRequest, NextApiResponse } from "next"; import NextCors from "nextjs-cors"; import { getWalletBalance } from "../../../../util/api"; export default async (req: NextApiRequest, res: NextApiResponse) => { await NextCors(req, res, { methods: ["GET"], origin: "*", optionsSuccessStatus: 200, }); const { wallet } = req.query as { wallet: string }; try { const balance = await getWalletBalance(wallet); res.json({ balance }); } catch (e) { res.status(400).json({ error: (e as Error).message }); } };

¿Cómo puedo hacer que getTokens() solo devuelva una matriz de Token con solo contractAddress , tokenName , tokenSymbol props, para que el punto final genere solo el JSON que necesito?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Si está buscando reducir los datos devueltos por api.etherscan.io en su propia API de proxy, deberá filtrar solo los accesorios que necesita. puedes lograrlo así:

 .then((response) => { return response.data.map(x=>({ contractAddress:x.contractAddress tokenName:x.tokenName tokenSymbol:x.tokenSymbol }); })

No sé mucho sobre el punto final de terceros, pero asumo que es un punto final REST, por lo que no podría aprovechar la capacidad de Graphql para reducir la sobreexplotación especificando las propiedades del tipo que le interesa.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda