@bitte-ai/agent-sdk
Version:
Agent SDK for Bitte Protocol
38 lines (37 loc) • 1.5 kB
JavaScript
;
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;
}
}