forked from tornadocash/classic-ui
fix: event service
This commit is contained in:
parent
56a6835d80
commit
d36b1a9866
@ -133,8 +133,8 @@
|
|||||||
:class="{ 'slide-animation-active': isLoading }"
|
:class="{ 'slide-animation-active': isLoading }"
|
||||||
:disabled="isWithdrawalButtonDisable"
|
:disabled="isWithdrawalButtonDisable"
|
||||||
:loading="isLoadingRelayers || isLoading"
|
:loading="isLoadingRelayers || isLoading"
|
||||||
@click="onWithdraw"
|
|
||||||
data-test="button_start_withdraw"
|
data-test="button_start_withdraw"
|
||||||
|
@click="onWithdraw"
|
||||||
>
|
>
|
||||||
{{ $t('withdrawButton') }}
|
{{ $t('withdrawButton') }}
|
||||||
</b-button>
|
</b-button>
|
||||||
@ -382,6 +382,8 @@ export default {
|
|||||||
},
|
},
|
||||||
activeTab(newTab, oldTab) {
|
activeTab(newTab, oldTab) {
|
||||||
if (newTab !== oldTab && newTab === 1) {
|
if (newTab !== oldTab && newTab === 1) {
|
||||||
|
this.withdrawAddress = ''
|
||||||
|
this.withdrawNote = ''
|
||||||
this.error = {
|
this.error = {
|
||||||
type: '',
|
type: '',
|
||||||
message: ''
|
message: ''
|
||||||
|
@ -36,10 +36,10 @@ class EventService {
|
|||||||
}
|
}
|
||||||
return cachedEvents
|
return cachedEvents
|
||||||
}
|
}
|
||||||
async updateEvents(type) {
|
async updateEvents(type, cachedEvents) {
|
||||||
const { deployedBlock } = networkConfig[`netId${this.netId}`]
|
const { deployedBlock } = networkConfig[`netId${this.netId}`]
|
||||||
|
|
||||||
const savedEvents = await this.getEvents(type)
|
const savedEvents = cachedEvents || (await this.getEvents(type))
|
||||||
|
|
||||||
let fromBlock = deployedBlock
|
let fromBlock = deployedBlock
|
||||||
if (savedEvents) {
|
if (savedEvents) {
|
||||||
@ -157,8 +157,17 @@ class EventService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async getStatisticsRpc({ fromBlock, eventsCount }) {
|
async getStatisticsRpc({ eventsCount }) {
|
||||||
|
const { deployedBlock } = networkConfig[`netId${this.netId}`]
|
||||||
|
const savedEvents = await this.getEvents(eventsType.DEPOSIT)
|
||||||
|
|
||||||
|
if (savedEvents.events.length) {
|
||||||
|
const { events } = await this.updateEvents(eventsType.DEPOSIT, savedEvents)
|
||||||
|
return events
|
||||||
|
}
|
||||||
|
|
||||||
const blockRange = 4950
|
const blockRange = 4950
|
||||||
|
const fromBlock = deployedBlock
|
||||||
const { blockDifference, currentBlockNumber } = await this.getBlocksDiff({ fromBlock })
|
const { blockDifference, currentBlockNumber } = await this.getBlocksDiff({ fromBlock })
|
||||||
|
|
||||||
let numberParts = blockDifference === 0 ? 1 : Math.ceil(blockDifference / blockRange)
|
let numberParts = blockDifference === 0 ? 1 : Math.ceil(blockDifference / blockRange)
|
||||||
@ -225,6 +234,15 @@ class EventService {
|
|||||||
|
|
||||||
async getEventsPartFromRpc({ fromBlock, toBlock, type }) {
|
async getEventsPartFromRpc({ fromBlock, toBlock, type }) {
|
||||||
try {
|
try {
|
||||||
|
const { currentBlockNumber } = await this.getBlocksDiff({ fromBlock })
|
||||||
|
|
||||||
|
if (fromBlock > currentBlockNumber) {
|
||||||
|
return {
|
||||||
|
events: [],
|
||||||
|
lastBlock: fromBlock
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const events = await this.contract.getPastEvents(capitalizeFirstLetter(type), {
|
const events = await this.contract.getPastEvents(capitalizeFirstLetter(type), {
|
||||||
fromBlock,
|
fromBlock,
|
||||||
toBlock
|
toBlock
|
||||||
|
@ -270,19 +270,15 @@ const actions = {
|
|||||||
async updateSelectEvents({ dispatch, commit, state, rootGetters, getters }) {
|
async updateSelectEvents({ dispatch, commit, state, rootGetters, getters }) {
|
||||||
const netId = rootGetters['metamask/netId']
|
const netId = rootGetters['metamask/netId']
|
||||||
const { currency, amount } = state.selectedStatistic
|
const { currency, amount } = state.selectedStatistic
|
||||||
const { deployedBlock } = networkConfig[`netId${netId}`]
|
|
||||||
|
|
||||||
const eventService = getters.eventsInterface.getService({ netId, amount, currency })
|
const eventService = getters.eventsInterface.getService({ netId, amount, currency })
|
||||||
|
|
||||||
const savedEvents = await eventService.getEvents(eventsType.DEPOSIT)
|
const graphEvents = await eventService.getEventsFromGraph({ methodName: 'getStatistic' })
|
||||||
const fromBlock = savedEvents?.lastBlock || deployedBlock
|
|
||||||
|
|
||||||
const graphEvents = await eventService.getEventsFromGraph({ fromBlock, methodName: 'getStatistic' })
|
|
||||||
|
|
||||||
let statistic = graphEvents?.events
|
let statistic = graphEvents?.events
|
||||||
|
|
||||||
if (!statistic || !statistic.length) {
|
if (!statistic || !statistic.length) {
|
||||||
const fresh = await eventService.getStatisticsRpc({ fromBlock, eventsCount: 10 })
|
const fresh = await eventService.getStatisticsRpc({ eventsCount: 10 })
|
||||||
|
|
||||||
statistic = fresh || []
|
statistic = fresh || []
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user