aave-utilities icon indicating copy to clipboard operation
aave-utilities copied to clipboard

NETWORK_ERROR When Using UiPoolDataProvider in Next.js API

Open fberger-xyz opened this issue 8 months ago • 1 comments

Question

Hi, I am trying to use the UiPoolDataProvider inside a simple Next.js API route I'm encountering the error: 'NETWORK_ERROR'. See below

My questions:

  • Does UiPoolDataProvider have any client-side client-side dependencies that might prevent it from running in a server environment ?
  • Is this setup expected to work in a Next.js API route?

Package version

"@aave/contract-helpers": "^1.30.5",
"@aave/math-utils": "^1.30.5",
"@bgd-labs/aave-address-book": "^4.8.1",
"ethers": "^5.7.2",
"next": "14.2.5",

GET route

for reproduction

import { NextResponse } from 'next/server'
import { ChainId, UiPoolDataProvider } from '@aave/contract-helpers'
import { ethers } from 'ethers'
import { AaveV3Ethereum } from '@bgd-labs/aave-address-book'

export async function GET() {
    const poolDataProviderContract = new UiPoolDataProvider({
        uiPoolDataProviderAddress: AaveV3Ethereum.UI_POOL_DATA_PROVIDER,
        provider: new ethers.providers.JsonRpcProvider('https://eth.llamarpc.com'),
        chainId: ChainId.mainnet,
    })
    const reserves = await poolDataProviderContract.getReservesHumanized({
        lendingPoolAddressProvider: AaveV3Ethereum.POOL_ADDRESSES_PROVIDER
    })
    const reservesArray = reserves.reservesData
    const baseCurrencyData = reserves.baseCurrencyData
    const formattedPoolReserves = formatReserves({
        reserves: reservesArray,
        marketReferenceCurrencyDecimals: baseCurrencyData.marketReferenceCurrencyDecimals,
        marketReferencePriceInUsd: baseCurrencyData.marketReferenceCurrencyPriceInUsd,
    })
    return NextResponse.json(formattedPoolReserves)
}

Error

 GET /api/... 500 in 10ms
 ⨯ Error: could not detect network (event="noNetwork", code=NETWORK_ERROR, version=providers/5.7.2)
    at Logger.makeError (webpack-internal:///(rsc)/./node_modules/.pnpm/@[email protected]/node_modules/@ethersproject/logger/lib.esm/index.js:231:23)
    at Logger.throwError (webpack-internal:///(rsc)/./node_modules/.pnpm/@[email protected]/node_modules/@ethersproject/logger/lib.esm/index.js:240:20)
    at JsonRpcProvider.eval (webpack-internal:///(rsc)/./node_modules/.pnpm/@[email protected]/node_modules/@ethersproject/providers/lib.esm/json-rpc-provider.js:458:27)
    at Generator.throw (<anonymous>)
    at rejected (webpack-internal:///(rsc)/./node_modules/.pnpm/@[email protected]/node_modules/@ethersproject/providers/lib.esm/json-rpc-provider.js:22:65)
    at runNextTicks (node:internal/process/task_queues:65:5)
    at listOnTimeout (node:internal/timers:575:9)
    at process.processTimers (node:internal/timers:549:7) {
  reason: 'could not detect network',
  code: 'NETWORK_ERROR',
  event: 'noNetwork'
}

fberger-xyz avatar Feb 14 '25 13:02 fberger-xyz