@broxus/js-core
Version:
MobX-based JavaScript Core library
37 lines (36 loc) • 1.75 kB
JavaScript
import { DEFAULT_NATIVE_CURRENCY_DECIMALS, ZeroAddress } from '../../constants';
import { tokenFactoryContract } from '../../models/tvm-token-factory/contracts';
import { resolveTvmAddress, toInt } from '../../utils';
export class TvmTokenFactoryUtils {
static async createToken(provider, factoryAddress, params, args) {
return tokenFactoryContract(provider, factoryAddress)
.methods.createToken({
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,
})
.sendDelayed({
amount: toInt(5, DEFAULT_NATIVE_CURRENCY_DECIMALS),
bounce: true,
from: resolveTvmAddress(params.remainingGasTo),
...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 });
}
}