UNPKG

@broxus/js-bridge-essentials

Version:

Bridge JavaScript Essentials library

40 lines (39 loc) 1.58 kB
import BigNumber from 'bignumber.js'; import { tonTokenApiEndpoint } from '../../constants'; import { resolveTonAddress } from '../../utils'; export class JettonAlienEvmUtils { static async meta(connection, address) { const [res1, res2] = await Promise.all([ connection.runMethod(resolveTonAddress(address), 'get_jetton_meta'), connection.runMethod(resolveTonAddress(address), 'get_jetton_meta'), ]); const baseToken = res2.stack.skip(4).readBigNumber().toString(); return { baseChainId: res1.stack.skip(3).readBigNumber().toString(), baseToken, evmTokenAddress: `0x${BigNumber(baseToken).toString(16).padStart(40, '0')}`, }; } static async getOffchainMeta(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'); } if (!details.meta) { throw new Error('Details does not contains meta'); } return { baseChainId: details.meta.chainId.toString(), baseToken: details.meta.baseToken, evmTokenAddress: `0x${BigNumber(details.meta.baseToken).toString(16).padStart(40, '0')}`, }; } }