@broxus/js-bridge-essentials
Version:
Bridge JavaScript Essentials library
65 lines (64 loc) • 3.36 kB
JavaScript
import { DEFAULT_NATIVE_CURRENCY_DECIMALS, getFullContractState, toInt } from '@broxus/js-core';
import { evmTonEventConfigurationContract } from '../../models/evm-ton-event-configuration/contracts';
export class EvmTonEventConfigurationUtils {
static deployEvent(provider, eventConfigurationAddress, params, args) {
return evmTonEventConfigurationContract(provider, eventConfigurationAddress)
.methods.deployEvent({
eventVoteData: params.eventVoteData,
})
.sendDelayed({
amount: toInt(6, DEFAULT_NATIVE_CURRENCY_DECIMALS),
bounce: true,
...args,
});
}
static async deriveEventAddress(connection, eventConfigurationAddress, params, cachedState) {
const state = cachedState ?? await getFullContractState(connection, eventConfigurationAddress);
const result = await evmTonEventConfigurationContract(connection, eventConfigurationAddress)
.methods.deriveEventAddress({
answerId: 0,
eventVoteData: params.eventVoteData,
})
.call({ cachedState: state, responsible: true });
return result.eventContract;
}
static async getDetails(connection, eventConfigurationAddress, cachedState) {
const state = cachedState ?? await getFullContractState(connection, eventConfigurationAddress);
const result = await evmTonEventConfigurationContract(connection, eventConfigurationAddress)
.methods.getDetails({ answerId: 0 })
.call({ cachedState: state, responsible: true });
return ({
basicConfiguration: result._basicConfiguration,
meta: result._meta,
networkConfiguration: {
chainId: result._networkConfiguration.chainId,
endBlockNumber: Number(result._networkConfiguration.endBlockNumber),
eventBlocksToConfirm: Number(result._networkConfiguration.eventBlocksToConfirm),
eventEmitter: result._networkConfiguration.eventEmitter,
proxy: result._networkConfiguration.proxy,
startBlockNumber: Number(result._networkConfiguration.startBlockNumber),
},
});
}
static async getFlags(connection, eventConfigurationAddress, cachedState) {
try {
const state = cachedState ?? await getFullContractState(connection, eventConfigurationAddress);
const result = await evmTonEventConfigurationContract(connection, eventConfigurationAddress)
.methods.getFlags({ answerId: 0 })
.call({ cachedState: state, responsible: true });
return result._flags;
}
catch {
return '0';
}
}
static decodeEvent(connection, eventConfigurationAddress, args) {
return evmTonEventConfigurationContract(connection, eventConfigurationAddress).decodeEvent(args);
}
static decodeTransaction(connection, eventConfigurationAddress, args) {
return evmTonEventConfigurationContract(connection, eventConfigurationAddress).decodeTransaction(args);
}
static decodeTransactionEvents(connection, eventConfigurationAddress, transaction) {
return evmTonEventConfigurationContract(connection, eventConfigurationAddress).decodeTransactionEvents({ transaction });
}
}