diff --git a/embarkConfig/contracts.js b/embarkConfig/contracts.js index b7d3863..eff82c1 100644 --- a/embarkConfig/contracts.js +++ b/embarkConfig/contracts.js @@ -103,22 +103,12 @@ module.exports = { LiquidPledging: { instanceOf: 'LiquidPledgingMock' }, - RecoveryVault: {}, - LPFactory: { - args: ['$LPVault', '$LiquidPledging'], - }, // contracts for testing - StandardToken: {}, - Kernel: { - file: "@aragon/os/contracts/kernel/Kernel.sol" - }, - ACL: { - file: "@aragon/os/contracts/acl/ACL.sol" - } + StandardToken: {} }, afterDeploy: async (deps) => { - await deps.contracts.LiquidPledging.methods.initialize(deps.contracts.LPVault.options.address).send({gas: 1000000}); - await deps.contracts.LPVault.methods.initialize(deps.contracts.LiquidPledging.options.address).send({gas: 1000000}); + await deps.contracts.LiquidPledging.methods.initialize(deps.contracts.LPVault.options.address).send({gas: 1000000, from: deps.web3.eth.defaultAccount}); + await deps.contracts.LPVault.methods.initialize(deps.contracts.LiquidPledging.options.address).send({gas: 1000000, from: deps.web3.eth.defaultAccount}); } // afterDeploy: [ diff --git a/package.json b/package.json index b9b4108..2c51e92 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,7 @@ "homepage": ".", "dependencies": { "@aragon/os": "3.1.9", + "cli-table": "^0.3.1", "colors": "^1.3.3", "commander": "^2.20.0", "embark": "^4.1.0-beta.0", diff --git a/src/actions.js b/src/actions.js index 2ab9e75..111eeb6 100644 --- a/src/actions.js +++ b/src/actions.js @@ -1,5 +1,7 @@ var inquirer = require('inquirer'); const Web3 = require("web3"); +const Table = require('cli-table'); + const Contracts = require("./contracts.js"); @@ -65,6 +67,29 @@ class Actions { }); } + async listProjects() { + try { + let numProjects = await this.contracts.LiquidPledging.methods.numberOfPledgeAdmins().call(); + + const table = new Table({ + head: ['Id', 'Name', 'URL', 'ParentProject', 'Status', 'Commit Time', 'Owner', 'Plugin'] + }); + + for(let i = 1; i <= numProjects; i++){ + const pledge = await this.contracts.LiquidPledging.methods.getPledgeAdmin(i).call(); + if(pledge.adminType !== '2') continue; + + table.push( + [i, pledge.name, pledge.url, pledge.parentProject, pledge.canceled ? 'Canceled' : 'Active', pledge.commitTime, pledge.addr, pledge.plugin] + ); + } + + console.log(table.toString()); + } catch(error){ + console.log("Couldn't obtain the list of projects: ", error.message); + } + } + addGiver(params) { let text = `await LiquidPledging.methods.addGiver(\"${params.name}\", \"${params.url}\", ${params.commitTime}, \"${params.plugin}\").send({from: \"${web3.eth.defaultAccount}\", gas: 2000000})` doAction(text, async () => { diff --git a/src/cmd.js b/src/cmd.js index c544fdb..6175043 100644 --- a/src/cmd.js +++ b/src/cmd.js @@ -10,10 +10,11 @@ async function app(actions) { subAction = (await menus.projects()).action if (subAction === 'List Projects') { + actions.listProjects(); } if (subAction === 'Create Project') { let params = (await menus.createProject(actions.web3().eth.defaultAccount)) actions.addProject(params); - } if (subAction === 'view Project') { + } if (subAction === 'View Project') { } if (subAction === 'Donate to Project') { let params = (await menus.donate()) actions.donate(params); diff --git a/yarn.lock b/yarn.lock index c4f2b0b..168eb59 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2656,6 +2656,13 @@ cli-spinners@^1.1.0: resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.3.1.tgz#002c1990912d0d59580c93bd36c056de99e4259a" integrity sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg== +cli-table@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23" + integrity sha1-9TsFJmqLGguTSz0IIebi3FkUriM= + dependencies: + colors "1.0.3" + cli-width@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" @@ -2784,6 +2791,11 @@ colornames@^1.1.1: resolved "https://registry.yarnpkg.com/colornames/-/colornames-1.1.1.tgz#f8889030685c7c4ff9e2a559f5077eb76a816f96" integrity sha1-+IiQMGhcfE/54qVZ9Qd+t2qBb5Y= +colors@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" + integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs= + colors@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.2.tgz#2df8ff573dfbf255af562f8ce7181d6b971a359b"