UNPKG

@broxus/js-bridge-essentials

Version:

Bridge JavaScript Essentials library

47 lines (46 loc) 1.81 kB
import { resolveTvmAddress } from '@broxus/js-core'; import { tonTokenApiEndpoint } from '../../constants'; import { resolveTonAddress } from '../../utils'; export class TonTokenUtils { static async getOffchainDetails(address) { const details = await tonTokenApiEndpoint.fetch({ address: resolveTonAddress(address).toRawString() }); if (!details.symbol) { throw new Error('Details does not contains symbol'); } if (!details.decimals) { throw new Error('Details does not contains decimals'); } if (!details.name) { throw new Error('Details does not contains name'); } return { address: resolveTonAddress(address), decimals: Number(details.decimals), logoURI: details.imageUrl ?? undefined, name: details.name, symbol: details.symbol, }; } static async walletOf(connection, params, cachedState) { const tokenRawAddress = resolveTonAddress(params.tokenAddress).toRawString(); const ownerRawAddress = resolveTonAddress(params.ownerAddress).toRawString(); const result = await connection.runGetter({ address: resolveTvmAddress(tokenRawAddress), cachedState, inputData: { walletOwner: resolveTvmAddress(ownerRawAddress), }, inputStructure: [ { name: 'walletOwner', type: 'address' }, ], method: 'get_wallet_address', outputStructure: [ { name: 'value0', type: 'address' }, ], }); if (!result.output?.value0) { throw new Error('Wallet not found'); } return resolveTonAddress(result.output.value0.toString()); } }