{"version":3,"file":"getBalances.cjs","sources":["../../../../src/wallet/getBalances.ts"],"sourcesContent":["import {\n  BASE_URL,\n  buildQueryString,\n  handleResponse,\n  getHeaders,\n} from \"./utils\";\nimport type { GetBalancesRequest, GetBalancesResponse } from \"./types\";\n\n/**\n * Get all token and NFT balances for a given wallet\n *\n * Retrieves token and NFT balances with USD values. Results are paginated\n * manually; the API returns up to 100 tokens per request. Results are sorted\n * by USD value in descending order.\n *\n * **Pagination:** Use the `page` parameter to fetch additional pages. The response\n * includes `pagination.hasMore` to indicate if more results are available.\n * Each request makes a single API call and costs 100 credits.\n *\n * @beta The Wallet API is currently in beta. APIs and response formats may change.\n *\n * @param apiKey - Helius API key\n * @param params - Request parameters including wallet address and pagination options\n * @returns Token and NFT balances with pagination metadata\n * @throws Error if HTTP error or invalid wallet address\n *\n * @example\n * ```ts\n * // Get first page of balances\n * const balances = await helius.wallet.getBalances({\n *   wallet: \"86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY\",\n *   showNative: true,\n *   showNfts: false,\n *   page: 1,\n *   limit: 100\n * });\n *\n * console.log(`Total USD value: $${balances.totalUsdValue}`);\n * balances.balances.forEach(token => {\n *   console.log(`${token.symbol}: ${token.balance} ($${token.usdValue})`);\n * });\n *\n * // Paginate if more results available\n * if (balances.pagination.hasMore) {\n *   const page2 = await helius.wallet.getBalances({\n *     wallet: \"86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY\",\n *     page: 2\n *   });\n * }\n * ```\n */\nexport const getBalances = async (\n  apiKey: string,\n  params: GetBalancesRequest,\n  userAgent?: string\n): Promise<GetBalancesResponse> => {\n  const { wallet, page, limit, showZeroBalance, showNative, showNfts } = params;\n\n  const queryParams = {\n    \"api-key\": apiKey,\n    page,\n    limit,\n    showZeroBalance,\n    showNative,\n    showNfts,\n  };\n\n  const url = `${BASE_URL}/${wallet}/balances${buildQueryString(queryParams)}`;\n\n  const response = await fetch(url, {\n    method: \"GET\",\n    headers: getHeaders(false, userAgent),\n  });\n\n  return handleResponse<GetBalancesResponse>(response);\n};\n"],"names":["BASE_URL","buildQueryString","getHeaders","handleResponse"],"mappings":";;;;AAQA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CG;AACI,MAAM,WAAW,GAAG,OACzB,MAAc,EACd,MAA0B,EAC1B,SAAkB,KACc;AAChC,IAAA,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,MAAM;AAE7E,IAAA,MAAM,WAAW,GAAG;AAClB,QAAA,SAAS,EAAE,MAAM;QACjB,IAAI;QACJ,KAAK;QACL,eAAe;QACf,UAAU;QACV,QAAQ;KACT;AAED,IAAA,MAAM,GAAG,GAAG,CAAA,EAAGA,cAAQ,CAAA,CAAA,EAAI,MAAM,CAAA,SAAA,EAAYC,sBAAgB,CAAC,WAAW,CAAC,CAAA,CAAE;AAE5E,IAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;AAChC,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,OAAO,EAAEC,gBAAU,CAAC,KAAK,EAAE,SAAS,CAAC;AACtC,KAAA,CAAC;AAEF,IAAA,OAAOC,oBAAc,CAAsB,QAAQ,CAAC;AACtD;;;;"}