Add export scripts

This commit is contained in:
Râu Cao 2022-08-23 09:27:42 +01:00
parent c865c154a4
commit 44f3128f16
Signed by: raucao
GPG Key ID: 15E65F399D084BA9
3 changed files with 105 additions and 0 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
data
build
flattened_contracts
node_modules

View File

@ -0,0 +1,56 @@
const fs = require('fs');
const initKredits = require('../helpers/init_kredits.js');
module.exports = async function(callback) {
let kredits;
try {
kredits = await initKredits(web3);
} catch(e) {
callback(e);
return;
}
console.log(`Using Contribution at: ${kredits.Contribution.contract.address}`);
try {
const count = await kredits.Contribution.count;
const currentBlockHeight = await kredits.provider.getBlockNumber();
const backup = {};
const promises = [];
for (let i = 1; i <= count; i++) {
promises.push(new Promise((resolve, reject) => {
setTimeout(async () => {
console.log(`Loading contribution #${i}`);
await kredits.Contribution.contract.getContribution(i).then(contractData => {
if (contractData.vetoed) {
console.log(`Ignoring vetoed contribution #${contractData.id}`);
resolve();
}
backup[i] = {
amount: contractData.amount,
contributorId: contractData.contributorId,
hashDigest: contractData.hashDigest,
hashFunction: contractData.hashFunction,
hashSize: contractData.hashSize,
confirmedAtBlock: contractData.confirmedAtBlock,
confirmed: contractData.confirmedAtBlock <= currentBlockHeight,
id: contractData.id,
}
resolve();
});
}, 100 * i);
}));
}
await Promise.all(promises).then(() => {
fs.writeFileSync("./data/contributions.json", JSON.stringify(backup, null, 2));
console.log("Exported");
});
} catch(e) {
callback(e);
return;
}
callback();
}

View File

@ -0,0 +1,48 @@
const fs = require('fs');
const initKredits = require('../helpers/init_kredits.js');
module.exports = async function(callback) {
let kredits;
try {
kredits = await initKredits(web3);
} catch(e) {
callback(e);
return;
}
console.log(`Using Contributor at: ${kredits.Contributor.contract.address}`);
try {
const count = await kredits.Contributor.count;
const backup = {};
const promises = [];
for (let i = 1; i <= count; i++) {
promises.push(new Promise((resolve, reject) => {
setTimeout(async () => {
console.log(`Loading contributor #${i}`);
await kredits.Contributor.contract.getContributorById(i).then(contractData => {
backup[i] = {
account: contractData.account,
hashDigest: contractData.hashDigest,
hashFunction: contractData.hashFunction,
hashSize: contractData.hashSize,
id: contractData.id,
}
resolve();
});
}, 100 * i);
}));
}
await Promise.all(promises).then(() => {
fs.writeFileSync("./data/contributors.json", JSON.stringify(backup, null, 2));
console.log("Exported");
});
} catch(e) {
callback(e);
return;
}
callback();
}