UNPKG

@broxus/js-bridge-essentials

Version:

Bridge JavaScript Essentials library

47 lines (46 loc) 1.97 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.JettonAlienEvmUtils = void 0; const bignumber_js_1 = __importDefault(require("bignumber.js")); const constants_1 = require("../../constants"); const utils_1 = require("../../utils"); class JettonAlienEvmUtils { static async meta(connection, address) { const [res1, res2] = await Promise.all([ connection.runMethod((0, utils_1.resolveTonAddress)(address), 'get_jetton_meta'), connection.runMethod((0, utils_1.resolveTonAddress)(address), 'get_jetton_meta'), ]); const baseToken = res2.stack.skip(4).readBigNumber().toString(); return { baseChainId: res1.stack.skip(3).readBigNumber().toString(), baseToken, evmTokenAddress: `0x${(0, bignumber_js_1.default)(baseToken).toString(16).padStart(40, '0')}`, }; } static async getOffchainMeta(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'); } if (!details.meta) { throw new Error('Details does not contains meta'); } return { baseChainId: details.meta.chainId.toString(), baseToken: details.meta.baseToken, evmTokenAddress: `0x${(0, bignumber_js_1.default)(details.meta.baseToken).toString(16).padStart(40, '0')}`, }; } } exports.JettonAlienEvmUtils = JettonAlienEvmUtils;