@broxus/js-bridge-essentials
Version:
Bridge JavaScript Essentials library
27 lines (26 loc) • 1.28 kB
JavaScript
import { getFullContractState } from '@broxus/js-core';
import core from 'everscale-standalone-client/core';
import init, { getJettonWalletData } from 'nekoton-wasm';
import { TonTokenUtils } from '../../models/ton-token/TonTokenUtils';
import { resolveTonAddress } from '../../utils';
import { getTonProtobufTransport } from '../../utils/get-ton-protobuf-transport';
export class TonTokenWalletUtils {
static async balance(connection, params) {
let tokenWalletAddress;
if ('walletAddress' in params) {
tokenWalletAddress = params.walletAddress;
}
else if ('tokenAddress' in params && 'ownerAddress' in params) {
const state = await getFullContractState(connection, resolveTonAddress(params.tokenAddress).toRawString());
tokenWalletAddress = await TonTokenUtils.walletOf(connection, params, state);
}
if (!tokenWalletAddress) {
throw new Error('Token Wallet not specified');
}
await init();
const transport = await getTonProtobufTransport();
const clock = new core.nekoton.ClockWithOffset();
const data = await getJettonWalletData(clock, transport, resolveTonAddress(tokenWalletAddress).toRawString());
return data?.balance;
}
}