@bitte-ai/agent-sdk
Version:
Agent SDK for Bitte Protocol
33 lines (32 loc) • 1.28 kB
JavaScript
import { Account, providers } from "near-api-js";
export async function getBalance({ accountId, rpcUrl, }) {
const provider = new providers.JsonRpcProvider({
url: rpcUrl || "https://rpc.mainnet.near.org",
});
const account = new Account(accountId, provider);
const { balance } = await account.getState();
return balance.available;
}
export async function ftBalance({ contractId, accountId, rpcUrl, }) {
const provider = new 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;
}
export async function ftStorageBalance({ contractId, accountId, rpcUrl, }) {
const provider = new 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;
}
}