From 4a83be26367b1aeaa552dd94d1f80fe9f52da012 Mon Sep 17 00:00:00 2001 From: dOrgJelli Date: Wed, 6 Nov 2019 16:37:07 +0100 Subject: [PATCH] arc version --- contracts/universalSchemes/DaoCreator.sol | 2 +- contracts/utils/DAOTracker.sol | 27 ++++++++++++++++++----- test/daotracker.js | 14 +++++++----- 3 files changed, 32 insertions(+), 11 deletions(-) diff --git a/contracts/universalSchemes/DaoCreator.sol b/contracts/universalSchemes/DaoCreator.sol index 59f23887..dd6791a3 100644 --- a/contracts/universalSchemes/DaoCreator.sol +++ b/contracts/universalSchemes/DaoCreator.sol @@ -205,7 +205,7 @@ contract DaoCreator { } // Add the DAO to the tracking registry - daoTracker.track(avatar, controller); + daoTracker.track(avatar, controller, ""); // Transfer ownership: avatar.transferOwnership(address(controller)); diff --git a/contracts/utils/DAOTracker.sol b/contracts/utils/DAOTracker.sol index 6ae6c3d8..94bdbcee 100644 --- a/contracts/utils/DAOTracker.sol +++ b/contracts/utils/DAOTracker.sol @@ -16,9 +16,24 @@ contract DAOTracker is Ownable { // Only able to be set by the owner of the DAOTracker. mapping(address=>bool) public blacklisted; - event TrackDAO(address indexed _avatar, address _controller, address _reputation, address _daoToken); - event BlacklistDAO(address indexed _avatar, string _explanationHash); - event ResetDAO(address indexed _avatar, string _explanationHash); + event TrackDAO( + address indexed _avatar, + address _controller, + address _reputation, + address _daoToken, + address _sender, + string _arcVersion + ); + + event BlacklistDAO( + address indexed _avatar, + string _explanationHash + ); + + event ResetDAO( + address indexed _avatar, + string _explanationHash + ); modifier onlyAvatarOwner(Avatar avatar) { require(avatar.owner() == msg.sender, @@ -43,7 +58,7 @@ contract DAOTracker is Ownable { * @param _avatar the organization avatar * @param _controller the organization controller */ - function track(Avatar _avatar, ControllerInterface _controller) + function track(Avatar _avatar, ControllerInterface _controller, string memory _arcVersion) public onlyAvatarOwner(_avatar) notBlacklisted(_avatar) { @@ -56,7 +71,9 @@ contract DAOTracker is Ownable { address(_avatar), address(_controller), address(_avatar.nativeReputation()), - address(_avatar.nativeToken()) + address(_avatar.nativeToken()), + msg.sender, + _arcVersion ); } diff --git a/test/daotracker.js b/test/daotracker.js index f0490538..812dd760 100644 --- a/test/daotracker.js +++ b/test/daotracker.js @@ -22,6 +22,8 @@ const setup = async function () { contract("DAOTracker", accounts => { + const arcVersionStub = "v0.0"; + it("track", async () => { const testSetup = await setup(); const avatar = testSetup.avatar.address; @@ -30,7 +32,7 @@ contract("DAOTracker", accounts => { const controller = testSetup.controller.address; const tx = await testSetup.daoTracker.track( - avatar, controller, opts + avatar, controller, arcVersionStub, opts ); // Verify Event @@ -40,6 +42,8 @@ contract("DAOTracker", accounts => { assert.equal(tx.logs[0].args._controller, controller); assert.equal(tx.logs[0].args._reputation, reputation); assert.equal(tx.logs[0].args._daoToken, daoToken); + assert.equal(tx.logs[0].args._sender, accounts[0]); + assert.equal(tx.logs[0].args._arcVersion, arcVersionStub); // Verify Storage const blacklisted = await testSetup.daoTracker.blacklisted(avatar); @@ -53,7 +57,7 @@ contract("DAOTracker", accounts => { try { await testSetup.daoTracker.track( - avatar, controller, {gas: opts.gas, from: accounts[1]} + avatar, controller, arcVersionStub, {gas: opts.gas, from: accounts[1]} ); assert.fail("This should never happen."); } catch (e) { @@ -67,7 +71,7 @@ contract("DAOTracker", accounts => { try { await testSetup.daoTracker.track( - "0x0000000000000000000000000000000000000000", controller, opts + "0x0000000000000000000000000000000000000000", controller, arcVersionStub, opts ); assert.fail("This should never happen."); } catch (e) { @@ -81,7 +85,7 @@ contract("DAOTracker", accounts => { try { await testSetup.daoTracker.track( - avatar, "0x0000000000000000000000000000000000000000", opts + avatar, "0x0000000000000000000000000000000000000000", arcVersionStub, opts ); assert.fail("This should never happen."); } catch (e) { @@ -138,7 +142,7 @@ contract("DAOTracker", accounts => { const controller = testSetup.controller.address; await testSetup.daoTracker.track( - avatar, controller, opts + avatar, controller, arcVersionStub, opts ); let blacklisted = await testSetup.daoTracker.blacklisted(avatar);