From 64a47a360d93ced7246f44f99cf9e2dfe2035ed9 Mon Sep 17 00:00:00 2001 From: Protinam Date: Tue, 12 Dec 2017 20:50:58 -0800 Subject: [PATCH] Allow DAO to alter board member threshold --- contracts/dao/DelegatedShareholderAssociation.sol | 4 +++- test/test-dao.js | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/contracts/dao/DelegatedShareholderAssociation.sol b/contracts/dao/DelegatedShareholderAssociation.sol index c10e0ef..0575c28 100644 --- a/contracts/dao/DelegatedShareholderAssociation.sol +++ b/contracts/dao/DelegatedShareholderAssociation.sol @@ -162,13 +162,15 @@ contract DelegatedShareholderAssociation is TokenRecipient { * * @param minimumSharesToPassAVote proposal can vote only if the sum of shares held by all voters exceed this number * @param minutesForDebate the minimum amount of delay between when a proposal is made and when it can be executed + * @param sharesToBeBoardMember the minimum number of shares required to create proposals */ - function changeVotingRules(uint minimumSharesToPassAVote, uint minutesForDebate) public onlySelf { + function changeVotingRules(uint minimumSharesToPassAVote, uint minutesForDebate, uint sharesToBeBoardMember) public onlySelf { if (minimumSharesToPassAVote == 0 ) { minimumSharesToPassAVote = 1; } minimumQuorum = minimumSharesToPassAVote; debatingPeriodInMinutes = minutesForDebate; + requiredSharesToBeBoardMember = sharesToBeBoardMember; ChangeOfRules(minimumQuorum, debatingPeriodInMinutes, sharesTokenAddress); } diff --git a/test/test-dao.js b/test/test-dao.js index 9b0a273..5db6351 100644 --- a/test/test-dao.js +++ b/test/test-dao.js @@ -27,7 +27,7 @@ contract('TestDAO', (accounts) => { return TestDAO .deployed() .then(daoInstance => { - return daoInstance.changeVotingRules.call(0, 0) + return daoInstance.changeVotingRules.call(0, 0, 0) }) .then(ret => { assert.equal(true, false, 'Anyone was allowed to change the voting rules') @@ -141,7 +141,7 @@ contract('TestDAO', (accounts) => { return TestDAO .deployed() .then(daoInstance => { - const abi = new web3.eth.Contract(daoInstance.abi, daoInstance.address).methods.changeVotingRules(2, 0).encodeABI() + const abi = new web3.eth.Contract(daoInstance.abi, daoInstance.address).methods.changeVotingRules(2, 0, 0).encodeABI() return daoInstance.newProposal.sendTransaction(daoInstance.address, 0, '0x', abi) .then(() => { return daoInstance.vote.sendTransaction(1, true) @@ -176,7 +176,7 @@ contract('TestDAO', (accounts) => { return TestDAO .deployed() .then(daoInstance => { - const abi = new web3.eth.Contract(daoInstance.abi, daoInstance.address).methods.changeVotingRules(3, 3).encodeABI() + const abi = new web3.eth.Contract(daoInstance.abi, daoInstance.address).methods.changeVotingRules(3, 3, 0).encodeABI() return daoInstance.newProposal.sendTransaction(daoInstance.address, 0, '0x', abi) .then(() => { return daoInstance.vote.sendTransaction(2, false)