UNPKG

@broxus/js-bridge-essentials

Version:

Bridge JavaScript Essentials library

83 lines (82 loc) 3.85 kB
import { getFullContractState } from '@broxus/js-core'; import { tvmEvmEventNativeContract } from '../../models/tvm-evm-event-native/contracts'; export class TvmEvmEventNativeUtils { static async getEventInitData(connection, eventAddress, cachedState) { const state = cachedState ?? await getFullContractState(connection, eventAddress); const result = await tvmEvmEventNativeContract(connection, eventAddress) .methods.getEventInitData({ answerId: 0 }) .call({ cachedState: state, responsible: true }); return { configuration: result.value0.configuration, staking: result.value0.staking, voteData: { eventData: result.value0.voteData.eventData, eventTimestamp: Number(result.value0.voteData.eventTimestamp), eventTransactionLt: result.value0.voteData.eventTransactionLt, }, }; } static async getDecodedData(connection, eventAddress, cachedState) { const state = cachedState ?? await getFullContractState(connection, eventAddress); const result = await tvmEvmEventNativeContract(connection, eventAddress) .methods.getDecodedData({ answerId: 0 }) .call({ cachedState: state, responsible: true }); return { amount: result.amount_, callback: { payload: result.callback.payload, recipient: result.callback.recipient, strict: result.callback.strict, }, chainId: result.chainId_, decimals: Number(result.decimals_), name: result.name_, proxyAddress: result.proxy_, recipientAddress: result.recipient_, remainingGasTo: result.remainingGasTo_, symbol: result.symbol_, tokenAddress: result.token_, tokenWalletAddress: result.tokenWallet_, }; } static async getDetails(connection, eventAddress, cachedState) { const state = cachedState ?? await getFullContractState(connection, eventAddress); const result = await tvmEvmEventNativeContract(connection, eventAddress) .methods.getDetails({ answerId: 0 }) .call({ cachedState: state, responsible: true }); return { balance: result.balance, confirms: result._confirms, empty: result.empty, eventInitData: { configuration: result._eventInitData.configuration, staking: result._eventInitData.staking, voteData: { eventData: result._eventInitData.voteData.eventData, eventTimestamp: Number(result._eventInitData.voteData.eventTimestamp), eventTransactionLt: result._eventInitData.voteData.eventTransactionLt, }, }, initializer: result._initializer, meta: result._meta, rejects: result._rejects, requiredVotes: result._requiredVotes, signatures: result._signatures, status: result._status, }; } static async sender(connection, eventAddress, cachedState) { const state = cachedState ?? await getFullContractState(connection, eventAddress); const result = await tvmEvmEventNativeContract(connection, eventAddress) .methods.sender() .call({ cachedState: state }); return result.sender; } static async nonce(connection, eventAddress, cachedState) { const state = cachedState ?? await getFullContractState(connection, eventAddress); const result = await tvmEvmEventNativeContract(connection, eventAddress) .methods.nonce() .call({ cachedState: state }); return result.nonce; } }