UNPKG

@broxus/js-bridge-essentials

Version:

Bridge JavaScript Essentials library

36 lines (35 loc) 1.71 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.TokenRootAlienSolanaUtils = void 0; const js_core_1 = require("@broxus/js-core"); const bignumber_js_1 = require("bignumber.js"); const bs58_1 = __importDefault(require("bs58")); const contracts_1 = require("../../models/token-root-alien-solana/contracts"); const utils_1 = require("../../utils"); class TokenRootAlienSolanaUtils { /** * Get alien token meta by the given TVM-like token address * @param {ProviderRpcClient} connection * @param {Address | string} tokenAddress * @param {FullContractState} [cachedState] - optional. Full contract state of the token root alien EVM contract */ static async meta(connection, tokenAddress, cachedState) { const state = cachedState ?? await (0, js_core_1.getFullContractState)(connection, tokenAddress); const result = await (0, contracts_1.tokenRootAlienSolanaContract)(connection, tokenAddress) .methods.meta({ answerId: 0 }) .call({ cachedState: state, responsible: true }); const hex = (0, bignumber_js_1.BigNumber)(result.base_token).toString(16).padStart(64, '0'); const buffer = Buffer.from(hex, 'hex'); return { baseToken: result.base_token, decimals: result.decimals, name: result.name, solTokenAddress: (0, utils_1.resolveSolanaAddress)(bs58_1.default.encode(buffer)), symbol: result.symbol, }; } } exports.TokenRootAlienSolanaUtils = TokenRootAlienSolanaUtils;