Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

148
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!