UNPKG

@broxus/js-bridge-essentials

Version:

Bridge JavaScript Essentials library

37 lines (36 loc) 1.73 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TokenRootAlienTvmUtils = void 0; const js_core_1 = require("@broxus/js-core"); const contracts_1 = require("../../models/token-root-alien-tvm/contracts"); class TokenRootAlienTvmUtils { /** * Get alien token meta by the given TVM-like token address * * - If request passed and `base_chainId` equal to target EVM network - it means token is alien * for TVM and native for target EVM network. * - If request failed, or passed, but `base_chainId` not equal to target EVM network - it * means token is native for TVM and alien for target EVM network * * @param {ProviderRpcClient} connection * @param {Address | string} tokenAddress * @param {string} payload * @param {FullContractState} [cachedState] - optional. Full contract state of the token root alien EVM contract */ static async meta(connection, tokenAddress, payload, cachedState) { const state = cachedState ?? await (0, js_core_1.getFullContractState)(connection, tokenAddress); const result = await (0, contracts_1.tokenRootAlienTvmContract)(connection, tokenAddress) .methods.meta({ _payload: payload ?? js_core_1.EmptyCell, answerId: 0 }) .call({ cachedState: state, responsible: true }); return { baseChainId: result.base_chainId, baseNativeProxyWallet: result.base_native_proxy_wallet, baseToken: result.base_token, decimals: result.decimals, name: result.name, payload: result.payload, symbol: result.symbol, }; } } exports.TokenRootAlienTvmUtils = TokenRootAlienTvmUtils;