From 8c5c6b7c6bdd3d14104faba9aaae2908747cd693 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A2u=20Cao?= Date: Thu, 14 Mar 2024 16:42:20 +0100 Subject: [PATCH] WIP Fetch Reimbursement events --- app/routes/budget.js | 3 +++ app/services/kredits.js | 27 +++++++++++++++++++++++++++ config/environment.js | 4 +++- 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/app/routes/budget.js b/app/routes/budget.js index c3d2f39..c00ee71 100644 --- a/app/routes/budget.js +++ b/app/routes/budget.js @@ -30,5 +30,8 @@ export default class BudgetRoute extends Route { } schedule('afterRender', this.kredits.fetchMissingReimbursements, this.kredits.fetchMissingReimbursements.perform); + + schedule('afterRender', this.kredits.syncReimbursementEvents, + this.kredits.syncReimbursementEvents.perform); } } diff --git a/app/services/kredits.js b/app/services/kredits.js index 898c8c0..ce87892 100644 --- a/app/services/kredits.js +++ b/app/services/kredits.js @@ -780,5 +780,32 @@ export default Service.extend({ this.contributors .findBy('address', to) .incrementProperty('balance', value); + }, + + + syncReimbursementEvents: task(function * () { + yield this.fetchEvents( + 'Reimbursement', // contract + 'ReimbursementAdded', // event + 0, + // this.kredits.currentBlock - (2*60*24*14), // from block + this.currentBlock // to block + ); + }).group('syncTaskGroup'), + + async fetchEvents(contractName, eventName, fromBlock, toBlock) { + const contract = this.kredits[contractName].contract; + const eventFilter = contract.filters[eventName](); + const filterOptions = { fromBlock, toBlock }; + + console.debug(contract, eventFilter, filterOptions); + contract.queryFilter(eventFilter) + .then(events => { + events.forEach(event => { + console.debug("Event:", event.args.creator, event.args.key, event.args.value); + }); + }).catch(e => { + console.error(e); + }); } }); diff --git a/config/environment.js b/config/environment.js index 7d53fde..a686974 100644 --- a/config/environment.js +++ b/config/environment.js @@ -62,7 +62,9 @@ module.exports = function(environment) { } }, - corsProxy: 'https://cors.5apps.com/?uri=' + corsProxy: 'https://cors.5apps.com/?uri=', + + hideVetoedEntriesAfterBlocks: 5760 // 48 hours }; if (environment === 'development') {