UNPKG

@broxus/js-bridge-essentials

Version:

Bridge JavaScript Essentials library

51 lines (50 loc) 2.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TonTokenUtils = void 0; const js_core_1 = require("@broxus/js-core"); const constants_1 = require("../../constants"); const utils_1 = require("../../utils"); class TonTokenUtils { static async getOffchainDetails(address) { const details = await constants_1.tonTokenApiEndpoint.fetch({ address: (0, utils_1.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: (0, utils_1.resolveTonAddress)(address), decimals: Number(details.decimals), logoURI: details.imageUrl ?? undefined, name: details.name, symbol: details.symbol, }; } static async walletOf(connection, params, cachedState) { const tokenRawAddress = (0, utils_1.resolveTonAddress)(params.tokenAddress).toRawString(); const ownerRawAddress = (0, utils_1.resolveTonAddress)(params.ownerAddress).toRawString(); const result = await connection.runGetter({ address: (0, js_core_1.resolveTvmAddress)(tokenRawAddress), cachedState, inputData: { walletOwner: (0, js_core_1.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 (0, utils_1.resolveTonAddress)(result.output.value0.toString()); } } exports.TonTokenUtils = TonTokenUtils;