La consulta de subgráfico devuelve los resultados a la consola, pero mi módulo de JavaScript no puede acceder a ningún valor y devuelve un error:
TypeError: Cannot read properties of undefined (reading 'symbol')
Según todo lo que leí en línea, así es como se accede a las propiedades de los objetos.
quni.mjs:
import axios from 'axios' export async function quni() { const uniData = async () => { var result; try{ result = await axios.post( 'https://api.thegraph.com/subgraphs/name/ianlapham/uniswap-v3-polygon', { query:` { pools( first: 2, where: { liquidity_gt: 100 } ) { id token1{symbol} token0{symbol} } } ` } ); } catch(error){ console.error(error); } const unipairs = result.data.data.pools; //console.log(unipairs); return result.data.data.pools; } return uniData(); } quni();
quniparse.mjs:
import { quni } from './quni.mjs'; async function unicheck() { var uni = await quni(); var unitoken0 = uni.token0.symbol; var unitoken1 = uni.token1.symbol; var ticker = toString([unitoken0+"/"+unitoken1]); console.log(ticker) }; unicheck();
Soluciones que he probado:
JSON.stringify(unipairs)
para intentar acceder usando objetos JSON en quniparse.mjs, pero eso produce resultados idénticos.
fs.writeFile('./unipairs', JSON.stringify(unipairs), null, 2)
para ver si el acceso a las propiedades del archivo .json podría ayudar.
Todos arrojan resultados idénticos (no se puede leer 'símbolo').
Resulta que solo necesitaba un bucle, ej.;
uni.forEach(unipair => { console.log(unipair);