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