contracts/scripts/seeds.js
2021-06-08 16:17:56 +02:00

49 lines
1.4 KiB
JavaScript

const path = require('path');
const each = require('async-each-series');
const seeds = require(path.join(__dirname, '..', '/config/seeds.js'));
const { ethers } = require("hardhat");
const Kredits = require('../lib/kredits');
async function main() {
kredits = new Kredits(hre.ethers.provider, hre.ethers.provider.getSigner())
await kredits.init();
let fundingAmount = '2';
each(seeds.funds, (address, next) => {
console.log(`funding ${address} with 2 ETH`);
try {
hre.ethers.provider.getSigner().sendTransaction({
to: address,
value: hre.ethers.utils.parseEther(fundingAmount)
});
} catch(e) {
console.log('FAILED:', e);
}
next();
});
each(seeds.contractCalls, (call, next) => {
let [contractName, method, args] = call;
let contractWrapper = kredits[contractName];
let func;
if (contractWrapper[method]) {
func = contractWrapper[method];
} else {
func = contractWrapper.contract[method];
}
func.apply(contractWrapper, args).then((result) => {
console.log(`[OK] kredits.${contractName}.${method}(${JSON.stringify(args)}) => ${result.hash}`);
next();
}).catch((error) => {
console.log(`[FAILED] kredits.${contractName}.${method}(${JSON.stringify(args)})`);
console.log(`Error: ${error.message}`);
next();
});
}, () => { console.log("\nDone!") });
}
main();