From 08df896ace42c122b3dcd36f5a3aaf476e5ade4e Mon Sep 17 00:00:00 2001 From: Michael Bumann Date: Thu, 10 Aug 2023 19:34:53 +0200 Subject: [PATCH] Add export script for reimbursements --- scripts/export/reimbursements.js | 44 ++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 scripts/export/reimbursements.js diff --git a/scripts/export/reimbursements.js b/scripts/export/reimbursements.js new file mode 100644 index 0000000..276474a --- /dev/null +++ b/scripts/export/reimbursements.js @@ -0,0 +1,44 @@ +const fs = require('fs'); +const Kredits = require('../../lib/kredits'); + +async function main() { + kredits = new Kredits(hre.ethers.provider, hre.ethers.provider.getSigner()) + await kredits.init(); + + console.log(`Using Reimbursement at: ${kredits.Reimbursement.contract.address}`); + + const count = await kredits.Reimbursement.count; + const currentBlockHeight = await hre.ethers.provider.getBlockNumber(); + + const backup = {}; + const promises = []; + for (let i = 1; i <= count; i++) { + promises.push(new Promise((resolve, reject) => { + setTimeout(async () => { + console.log(`Loading reimbursement #${i}`); + await kredits.Reimbursement.contract.get(i).then(contractData => { + backup[i] = { + recipientId: contractData.recipientId, + amount: contractData.amount, + token: contractData.token, + hashDigest: contractData.hashDigest, + hashFunction: contractData.hashFunction, + hashSize: contractData.hashSize, + confirmedAtBlock: contractData.confirmedAtBlock, + confirmed: contractData.confirmedAtBlock <= currentBlockHeight, + vetoed: contractData.vetoed, + id: contractData.id, + } + resolve(); + }); + }, 100 * i); + })); + } + + await Promise.all(promises).then(() => { + fs.writeFileSync("./data/reimbursements.json", JSON.stringify(backup, null, 2)); + console.log("Exported"); + }); +} + +main();