Refactor seeds script

This commit is contained in:
Basti 2022-04-25 22:20:49 +02:00
parent ad8daa8649
commit 0fde17a4e0
Signed by untrusted user: basti
GPG Key ID: 9F88009D31D99C72

View File

@ -1,10 +1,7 @@
const path = require("path"); const path = require("path");
const each = require("async-each-series");
const seeds = require(path.join(__dirname, "..", "/config/seeds.js"));
const { ethers } = require("hardhat"); const { ethers } = require("hardhat");
const Kredits = require("../lib/kredits"); const Kredits = require("../lib/kredits");
const seeds = require(path.join(__dirname, "..", "/config/seeds.js"));
async function main() { async function main() {
kredits = new Kredits(hre.ethers.provider, hre.ethers.provider.getSigner()); kredits = new Kredits(hre.ethers.provider, hre.ethers.provider.getSigner());
@ -14,56 +11,47 @@ async function main() {
console.log(`Sender account: ${address}`); console.log(`Sender account: ${address}`);
let fundingAmount = "2"; let fundingAmount = "2";
each(seeds.funds, (address, next) => {
console.log(`funding ${address} with 2 ETH`); for (const address of seeds.funds) {
console.log(`Funding ${address} with 2 ETH`);
try { try {
hre.ethers.provider.getSigner().sendTransaction({ await hre.ethers.provider.getSigner().sendTransaction({
to: address, to: address,
value: hre.ethers.utils.parseEther(fundingAmount), value: hre.ethers.utils.parseEther(fundingAmount),
}); });
console.log('Done');
} catch (e) { } catch (e) {
console.log("FAILED:", e); console.log("FAILED:", e);
} }
next(); }
});
each( console.log(`Running seeds (${seeds.contractCalls.length} contract calls)...\n`)
seeds.contractCalls,
(call, next) => { for (const call of seeds.contractCalls) {
let [contractName, method, args] = call; const [contractName, method, args] = call;
let contractWrapper = kredits[contractName]; const contractWrapper = kredits[contractName];
let func; const func = contractWrapper[method] ?
if (contractWrapper[method]) { contractWrapper[method] :
func = contractWrapper[method]; contractWrapper.contract[method];
} else {
func = contractWrapper.contract[method]; try {
} // console.log('trying', func);
func const result = await func.apply(contractWrapper, args);
.apply(contractWrapper, args) // console.log('result:', result);
.then((result) => { await result.wait();
console.log( console.log(
`[OK] kredits.${contractName}.${method}(${JSON.stringify( `[OK] kredits.${contractName}.${method}(${JSON.stringify(
args args
)}) => ${result.hash}` )}) => ${result.hash}`
); );
result.wait().then((r) => { } catch(error) {
next(); console.log(
}); `[FAILED] kredits.${contractName}.${method}(${JSON.stringify(args)})`
}) );
.catch((error) => { console.log(`Error: ${error.message}`);
console.log(
`[FAILED] kredits.${contractName}.${method}(${JSON.stringify(
args
)})`
);
console.log(`Error: ${error.message}`);
next();
});
},
() => {
console.log("\nDone!");
} }
); }
} }
main(); main().then(() => console.log("Bravo, all done!"));