UNPKG

@bitte-ai/agent-sdk

Version:

Agent SDK for Bitte Protocol

38 lines (37 loc) 1.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getBalance = getBalance; exports.ftBalance = ftBalance; exports.ftStorageBalance = ftStorageBalance; const near_api_js_1 = require("near-api-js"); async function getBalance({ accountId, rpcUrl, }) { const provider = new near_api_js_1.providers.JsonRpcProvider({ url: rpcUrl || "https://rpc.mainnet.near.org", }); const account = new near_api_js_1.Account(accountId, provider); const { balance } = await account.getState(); return balance.available; } async function ftBalance({ contractId, accountId, rpcUrl, }) { const provider = new near_api_js_1.providers.JsonRpcProvider({ url: rpcUrl || "https://rpc.mainnet.near.org", }); const result = await provider.callFunction(contractId, "ft_balance_of", { account_id: accountId }); if (!result) { throw new Error(`Could not read ftBalance of ${accountId} for ${contractId}`); } return result; } async function ftStorageBalance({ contractId, accountId, rpcUrl, }) { const provider = new near_api_js_1.providers.JsonRpcProvider({ url: rpcUrl || "https://rpc.mainnet.near.org", }); try { const result = await provider.callFunction(contractId, "storage_balance_of", { account_id: accountId }); return result || null; } catch (err) { console.warn(`Could not read ftBalance of ${accountId} for ${contractId}: ${err.message}`); return null; } }