@broxus/js-bridge-essentials
Version:
Bridge JavaScript Essentials library
40 lines (39 loc) • 1.58 kB
JavaScript
import BigNumber from 'bignumber.js';
import { tonTokenApiEndpoint } from '../../constants';
import { resolveTonAddress } from '../../utils';
export class JettonAlienEvmUtils {
static async meta(connection, address) {
const [res1, res2] = await Promise.all([
connection.runMethod(resolveTonAddress(address), 'get_jetton_meta'),
connection.runMethod(resolveTonAddress(address), 'get_jetton_meta'),
]);
const baseToken = res2.stack.skip(4).readBigNumber().toString();
return {
baseChainId: res1.stack.skip(3).readBigNumber().toString(),
baseToken,
evmTokenAddress: `0x${BigNumber(baseToken).toString(16).padStart(40, '0')}`,
};
}
static async getOffchainMeta(address) {
const details = await tonTokenApiEndpoint.fetch({
address: 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${BigNumber(details.meta.baseToken).toString(16).padStart(40, '0')}`,
};
}
}