commit
f33c450fcb
|
@ -6,6 +6,9 @@ const web3 = new Web3();
|
|||
const LiquidPledgingJSONConfig = require("../dist/contracts/LiquidPledging.json");
|
||||
let LiquidPledging;
|
||||
|
||||
const StandardTokenJSONConfig = require("../dist/contracts/StandardToken.json");
|
||||
let StandardToken;
|
||||
|
||||
function doAction(actionText, action) {
|
||||
console.dir(actionText)
|
||||
const confirmation = inquirer
|
||||
|
@ -15,7 +18,8 @@ function doAction(actionText, action) {
|
|||
name: 'action',
|
||||
message: 'Execute?',
|
||||
}
|
||||
]).then(() => {
|
||||
]).then((answer) => {
|
||||
if (answer.action === false) return;
|
||||
console.dir("executing...");
|
||||
try {
|
||||
action()
|
||||
|
@ -41,6 +45,7 @@ class Actions {
|
|||
web3.eth.defaultAccount = accounts[0]
|
||||
|
||||
LiquidPledging = new web3.eth.Contract(LiquidPledgingJSONConfig.abiDefinition, LiquidPledgingJSONConfig.address);
|
||||
StandardToken = new web3.eth.Contract(StandardTokenJSONConfig.abiDefinition, StandardTokenJSONConfig.address);
|
||||
|
||||
cb();
|
||||
}, 1000);
|
||||
|
@ -87,6 +92,14 @@ class Actions {
|
|||
});
|
||||
}
|
||||
|
||||
donate(params) {
|
||||
let text = `await LiquidPledging.methods.donate(${params.funderId}, ${params.projectId}, \"${LiquidPledging.options.address}\", web3.utils.toWei(\"${params.amount}\", \"ether\")).send({gas: 2000000});`
|
||||
doAction(text, async () => {
|
||||
let donateReceipt = await LiquidPledging.methods.donate(params.funderId, params.projectId, LiquidPledging.options.address, web3.utils.toWei(params.amount, "ether")).send({gas: 2000000});
|
||||
console.dir("txHash: " + donateReceipt.transactionHash)
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = Actions;
|
||||
|
|
13
src/cmd.js
13
src/cmd.js
|
@ -13,8 +13,11 @@ async function app(actions) {
|
|||
if (subAction === 'List Projects') {
|
||||
} if (subAction === 'Create Project') {
|
||||
let params = (await menus.createProject(actions.web3().eth.defaultAccount))
|
||||
actions.addProject(params);
|
||||
actions.addProject(params);
|
||||
} if (subAction === 'view Project') {
|
||||
} if (subAction === 'Donate to Project') {
|
||||
let params = (await menus.donate())
|
||||
actions.donate(params);
|
||||
}
|
||||
} else if (action === 'Funders') {
|
||||
subAction = (await menus.funders()).action
|
||||
|
@ -22,17 +25,17 @@ async function app(actions) {
|
|||
if (subAction === 'List Funders') {
|
||||
} if (subAction === 'Create Funder') {
|
||||
let params = (await menus.createProject())
|
||||
actions.addProject(params);
|
||||
actions.addProject(params);
|
||||
}
|
||||
} else if (action === 'Tokens') {
|
||||
subAction = (await menus.tokens()).action
|
||||
|
||||
if (subAction === 'Mint') {
|
||||
let params = (await menus.mintToken())
|
||||
action.mintToken(params);
|
||||
action.mintToken(params);
|
||||
} if (subAction === 'Aprove') {
|
||||
let params = (await menus.approveToken())
|
||||
action.approveToken(params);
|
||||
action.approveToken(params);
|
||||
}
|
||||
} else if (action === 'Exit') {
|
||||
process.exit()
|
||||
|
@ -44,6 +47,6 @@ async function app(actions) {
|
|||
const actions = new Actions();
|
||||
|
||||
actions.connect(async () => {
|
||||
app(actions)
|
||||
app(actions)
|
||||
});
|
||||
|
||||
|
|
35
src/menus.js
35
src/menus.js
|
@ -32,6 +32,7 @@ const menus = {
|
|||
'List Projects',
|
||||
'Create Project',
|
||||
'View Project',
|
||||
'Donate to Project',
|
||||
// new inquirer.Separator(),
|
||||
// 'Back',
|
||||
// new inquirer.Separator(),
|
||||
|
@ -233,6 +234,40 @@ const menus = {
|
|||
filter: Number
|
||||
}
|
||||
])
|
||||
},
|
||||
|
||||
donate: async function(lpAddress) {
|
||||
console.dir("note: don't forget to approve the token to be withdrawn by the LF address");
|
||||
return inquirer.prompt([
|
||||
{
|
||||
type: 'input',
|
||||
name: 'funderId',
|
||||
message: 'What is the funder Id?',
|
||||
filter: Number
|
||||
},
|
||||
{
|
||||
type: 'input',
|
||||
name: 'projectId',
|
||||
message: 'What is the projectId?',
|
||||
filter: Number
|
||||
},
|
||||
{
|
||||
type: 'input',
|
||||
name: 'tokenAddress',
|
||||
message: 'What is the token address?',
|
||||
filter: String,
|
||||
validate: function(value) {
|
||||
return value.indexOf("0x") === 0;
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'input',
|
||||
name: 'amount',
|
||||
message: 'amount (in ether units)',
|
||||
default: 2,
|
||||
filter: Number
|
||||
}
|
||||
])
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue