From 6c8e3143c5c4b4aa8df7c914dc9d90c0bbac1767 Mon Sep 17 00:00:00 2001 From: enkogu Date: Tue, 23 Oct 2018 04:05:32 +0800 Subject: [PATCH] bug fixed --- contracts/3-DevZenDao/DevZenDaoAuto.sol | 16 ++++++++++++++++ contracts/3-DevZenDao/DevZenDaoCore.sol | 6 ++++++ contracts/3-DevZenDao/DevZenDaoFactory.sol | 1 + contracts/3-DevZenDao/DevZenDaoWithUnpackers.sol | 5 +++++ scripts/test.sh | 2 +- test/DevZenDao.functional.tests.js | 8 +++++--- 6 files changed, 34 insertions(+), 4 deletions(-) diff --git a/contracts/3-DevZenDao/DevZenDaoAuto.sol b/contracts/3-DevZenDao/DevZenDaoAuto.sol index ac5bc72..811384c 100644 --- a/contracts/3-DevZenDao/DevZenDaoAuto.sol +++ b/contracts/3-DevZenDao/DevZenDaoAuto.sol @@ -68,4 +68,20 @@ contract DevZenDaoAuto is DaoBaseAuto{ return doAction(devZenDao.DEV_ZEN_MOVE_TO_NEXT_EPISODE(), devZenDao, msg.sender, "moveToNextEpisodeGeneric(bytes32[])", params); } + + function addGroupMemberAuto(string _group, address _a) public returns(address proposalOut) { + bytes32[] memory params = new bytes32[](2); + + params[0] = UtilsLib.stringToBytes32(_group); + params[1] = bytes32(_a); + + return doAction( + DaoBase(address(daoBase)).MANAGE_GROUPS(), + devZenDao, + msg.sender, + "addGroupMemberGeneric(bytes32[])", + params + ); + } + } diff --git a/contracts/3-DevZenDao/DevZenDaoCore.sol b/contracts/3-DevZenDao/DevZenDaoCore.sol index af53c67..aa593d5 100644 --- a/contracts/3-DevZenDao/DevZenDaoCore.sol +++ b/contracts/3-DevZenDao/DevZenDaoCore.sol @@ -65,6 +65,7 @@ contract DevZenDaoCore is DaoClient { event DevZenDaoCore_BuyTokens(); event DevZenDaoCore_IsOneWeekPassed(); event DevZenDaoCore_SetGuest(address _guest); + event DevZenDaoCore_AddGroupMember(string _groupName, address _member); event SetParam(bytes32 _param, uint _value); @@ -126,6 +127,11 @@ contract DevZenDaoCore is DaoClient { daoBase.burnTokens(devZenToken, address(this), params[BECOME_GUEST_STAKE]); } + function _addGroupMember(string _groupName, address _member) internal { + emit DevZenDaoCore_AddGroupMember(_groupName, _member); + daoBase.addGroupMember(_groupName, _member); + } + /** * @dev Changes the guest in "legal" way * @param _guest New guest address diff --git a/contracts/3-DevZenDao/DevZenDaoFactory.sol b/contracts/3-DevZenDao/DevZenDaoFactory.sol index 14e003d..fa1523e 100644 --- a/contracts/3-DevZenDao/DevZenDaoFactory.sol +++ b/contracts/3-DevZenDao/DevZenDaoFactory.sol @@ -49,6 +49,7 @@ contract DevZenDaoFactory { createNewContract(IDaoBase(daoBase), tokens); store.allowActionByAddress(daoBase.MANAGE_GROUPS(),address(this)); + store.allowActionByAddress(daoBase.MANAGE_GROUPS(),address(devZenDao)); store.allowActionByAddress(daoBase.ISSUE_TOKENS(),address(devZenDao)); store.allowActionByAddress(daoBase.BURN_TOKENS(),address(devZenDao)); store.allowActionByAddress(devZenDao.DEV_ZEN_MOVE_TO_NEXT_EPISODE(), _boss); diff --git a/contracts/3-DevZenDao/DevZenDaoWithUnpackers.sol b/contracts/3-DevZenDao/DevZenDaoWithUnpackers.sol index 03d8f7c..466b262 100644 --- a/contracts/3-DevZenDao/DevZenDaoWithUnpackers.sol +++ b/contracts/3-DevZenDao/DevZenDaoWithUnpackers.sol @@ -40,4 +40,9 @@ contract DevZenDaoWithUnpackers is DevZenDao { moveToNextEpisode(guestHasCome==1); } + function addGroupMemberGeneric(bytes32[] _params) external { + string memory _groupName = UtilsLib.bytes32ToString(_params[0]); + address a = address(_params[1]); + _addGroupMember(_groupName, a); + } } diff --git a/scripts/test.sh b/scripts/test.sh index 4f9778e..aa17c0f 100755 --- a/scripts/test.sh +++ b/scripts/test.sh @@ -23,5 +23,5 @@ else ganachecli_pid=$! fi -truffle migrate +# truffle migrate truffle test $1 \ No newline at end of file diff --git a/test/DevZenDao.functional.tests.js b/test/DevZenDao.functional.tests.js index dedf969..c99ebc3 100644 --- a/test/DevZenDao.functional.tests.js +++ b/test/DevZenDao.functional.tests.js @@ -55,8 +55,10 @@ contract("DevZenDaoAuto", (accounts) => { describe("addGroupMemberAuto()", () => { it("should add group member after successful voting", async() => { + var members = await daoBase.getGroupMembers("DevZenTeam"); + console.log('members before ', members); + await devZenDaoAuto.addGroupMemberAuto("DevZenTeam", guest1, {from: boss}).should.be.fulfilled; - const proposalAddress = await daoBase.getProposalAtIndex(0); const proposal = await IProposal.at(proposalAddress); const votingAddress = await proposal.getVoting(); @@ -64,8 +66,8 @@ contract("DevZenDaoAuto", (accounts) => { await voting.vote(true, {from: teamMember1}); - let members = await daoBase.getGroupMembers("DevZenTeam"); - console.log(members); + var members = await daoBase.getGroupMembers("DevZenTeam"); + console.log('members after ', members); }); });