2019-05-22 17:28:21 +00:00
|
|
|
var inquirer = require('inquirer');
|
|
|
|
const Web3 = require("web3");
|
|
|
|
|
|
|
|
const web3 = new Web3();
|
|
|
|
|
|
|
|
const LiquidPledgingJSONConfig = require("../dist/contracts/LiquidPledging.json");
|
2019-05-22 17:56:41 +00:00
|
|
|
let LiquidPledging;
|
2019-05-22 17:28:21 +00:00
|
|
|
|
|
|
|
function doAction(actionText, action) {
|
|
|
|
console.dir(actionText)
|
|
|
|
const confirmation = inquirer
|
|
|
|
.prompt([
|
|
|
|
{
|
|
|
|
type: 'confirm',
|
|
|
|
name: 'action',
|
|
|
|
message: 'Execute?',
|
|
|
|
}
|
|
|
|
]).then(() => {
|
|
|
|
console.dir("executing...");
|
2019-05-22 17:40:33 +00:00
|
|
|
try {
|
|
|
|
action()
|
|
|
|
} catch (e) {
|
|
|
|
console.dir("== error")
|
|
|
|
console.dir(e)
|
|
|
|
}
|
2019-05-22 17:28:21 +00:00
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
class Actions {
|
|
|
|
|
|
|
|
constructor() {
|
|
|
|
}
|
|
|
|
|
2019-05-22 17:40:33 +00:00
|
|
|
connect(cb) {
|
2019-05-22 17:28:21 +00:00
|
|
|
web3.setProvider("ws://localhost:8556");
|
2019-05-22 17:40:33 +00:00
|
|
|
|
|
|
|
setTimeout(async () => {
|
|
|
|
let accounts = await web3.eth.getAccounts();
|
2019-05-22 17:56:41 +00:00
|
|
|
console.dir("== accounts");
|
|
|
|
console.dir(accounts);
|
2019-05-22 17:40:33 +00:00
|
|
|
web3.eth.defaultAccount = accounts[0]
|
2019-05-22 17:56:41 +00:00
|
|
|
|
|
|
|
LiquidPledging = new web3.eth.Contract(LiquidPledgingJSONConfig.abiDefinition, LiquidPledgingJSONConfig.address);
|
|
|
|
|
2019-05-22 17:40:33 +00:00
|
|
|
cb();
|
|
|
|
}, 1000);
|
2019-05-22 17:28:21 +00:00
|
|
|
}
|
|
|
|
|
2019-05-22 18:08:06 +00:00
|
|
|
web3() {
|
|
|
|
return web3;
|
|
|
|
}
|
2019-05-22 17:56:41 +00:00
|
|
|
|
2019-05-22 17:28:21 +00:00
|
|
|
addProject(params) {
|
2019-05-22 17:40:33 +00:00
|
|
|
let text = `await LiquidPledging.methods.addProject(\"${params.name}\", \"${params.url}\", \"${params.account}\", ${params.parentProject}, ${params.commitTime}, \"${params.plugin}\").send({from: \"${web3.eth.defaultAccount}\", gas: 2000000})`
|
2019-05-22 17:28:21 +00:00
|
|
|
doAction(text, async () => {
|
|
|
|
let projectReceipt = await LiquidPledging.methods.addProject(params.name, params.url, params.account, params.parentProject, params.commitTime, params.plugin).send({from: web3.eth.defaultAccount, gas: 2000000});
|
2019-05-22 17:56:41 +00:00
|
|
|
console.dir("txHash: " + projectReceipt.transactionHash)
|
2019-05-22 17:28:21 +00:00
|
|
|
var projectId = projectReceipt.events.ProjectAdded.returnValues.idProject;
|
|
|
|
|
|
|
|
console.log(projectId);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
addGiver(params) {
|
2019-05-22 17:40:33 +00:00
|
|
|
let text = `await LiquidPledging.methods.addGiver(\"${params.name}\", \"${params.url}\", ${params.commitTime}, \"${params.plugin}\").send({from: \"${web3.eth.defaultAccount}\", gas: 2000000})`
|
2019-05-22 17:28:21 +00:00
|
|
|
doAction(text, async () => {
|
|
|
|
let funderReceipt = await LiquidPledging.methods.addGiver(params.name, params.url, params.commitTime, params.plugin).send({from: web3.eth.defaultAccount, gas: 2000000})
|
2019-05-22 17:56:41 +00:00
|
|
|
console.dir("txHash: " + funderReceipt.transactionHash)
|
2019-05-22 17:28:21 +00:00
|
|
|
var funderId = funderReceipt.events.GiverAdded.returnValues.idGiver;
|
|
|
|
console.log(funderId);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
mintToken(params) {
|
|
|
|
let text = `await StandardToken.methods.mint(\"${params.account}\", web3.utils.toWei(\"${params.amount}\", \"ether\")).send({gas: 2000000})`
|
|
|
|
doAction(text, async () => {
|
2019-05-22 17:56:41 +00:00
|
|
|
let mintReceipt = await StandardToken.methods.mint(params.account, web3.utils.toWei(params.amount, "ether")).send({gas: 2000000})
|
|
|
|
console.dir("txHash: " + mintReceipt.transactionHash)
|
2019-05-22 17:28:21 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2019-05-22 18:08:06 +00:00
|
|
|
approveToken(params) {
|
|
|
|
let text = `await StandardToken.methods.approve(\"${LiquidPledging.options.address}\", web3.utils.toWei(\"${params.amount}\", \"ether\")).send({gas: 2000000})`
|
|
|
|
doAction(text, async () => {
|
|
|
|
let mintReceipt = await StandardToken.methods.approve(LiquidPledging.options.address, web3.utils.toWei(params.amount, "ether")).send({gas: 2000000})
|
|
|
|
console.dir("txHash: " + mintReceipt.transactionHash)
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2019-05-22 17:28:21 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
module.exports = Actions;
|