UNPKG

@broxus/js-bridge-essentials

Version:

Bridge JavaScript Essentials library

27 lines (26 loc) 1.28 kB
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; } }