@broxus/js-bridge-essentials
Version:
Bridge JavaScript Essentials library
37 lines (36 loc) • 1.73 kB
JavaScript
;
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;