UNPKG

@broxus/js-core

Version:

MobX-based JavaScript Core library

49 lines (48 loc) 2.19 kB
import { DEFAULT_NATIVE_CURRENCY_DECIMALS, ZeroAddress } from '../../constants'; import { tokenFactoryContract, tokenFactoryV22Contract } from '../../models/tvm-token-factory/contracts'; import { isUnsupportedAbiVersionError, resolveTvmAddress, toInt } from '../../utils'; export class TvmTokenFactoryUtils { static async createToken(provider, factoryAddress, params, args) { const _params = { burnByRootDisabled: params.burnByRootDisabled, burnPaused: params.burnPaused, callId: params.callId, decimals: params.decimals, deployWalletValue: params.deployWalletValue ?? toInt(0.1, DEFAULT_NATIVE_CURRENCY_DECIMALS), initialSupply: params.initialSupply ?? 0, initialSupplyTo: resolveTvmAddress(params.initialSupplyTo || ZeroAddress), mintDisabled: params.mintDisabled, name: params.name, remainingGasTo: resolveTvmAddress(params.remainingGasTo), symbol: params.symbol, }; const _args = { amount: toInt(5, DEFAULT_NATIVE_CURRENCY_DECIMALS), bounce: true, from: resolveTvmAddress(params.remainingGasTo), ...args, }; try { return await tokenFactoryContract(provider, factoryAddress) .methods.createToken(_params) .sendDelayed(_args); } catch (e) { if (!isUnsupportedAbiVersionError(e)) { throw e; } return tokenFactoryV22Contract(provider, factoryAddress) .methods.createToken(_params) .sendDelayed(_args); } } static decodeEvent(connection, factoryAddress, args) { return tokenFactoryContract(connection, factoryAddress).decodeEvent(args); } static decodeTransaction(connection, factoryAddress, args) { return tokenFactoryContract(connection, factoryAddress).decodeTransaction(args); } static decodeTransactionEvents(connection, factoryAddress, transaction) { return tokenFactoryContract(connection, factoryAddress).decodeTransactionEvents({ transaction }); } }