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