diff --git a/CODE_STYLE.md b/CODE_STYLE.md index 11614a246..326954820 100644 --- a/CODE_STYLE.md +++ b/CODE_STYLE.md @@ -18,8 +18,21 @@ Any exception or additions specific to our project are documented below. * Parameters must be prefixed with an underscore. -``` -function test(uint256 _testParameter1, uint256 _testParameter2) { + ``` + function test(uint256 _testParameter1, uint256 _testParameter2) { ... -} -``` + } + ``` + +* Events should be emitted immediately after the state change that they + represent, and consequently they should be named in past tense. + + ``` + function _burn(address _who, uint256 _value) internal { + super._burn(_who, _value); + emit TokensBurned(_who, _value); + } + ``` + + Some standards (e.g. ERC20) use present tense, and in those cases the + standard specification prevails. diff --git a/contracts/crowdsale/Crowdsale.sol b/contracts/crowdsale/Crowdsale.sol index 5d89e8514..9e219a304 100644 --- a/contracts/crowdsale/Crowdsale.sol +++ b/contracts/crowdsale/Crowdsale.sol @@ -43,7 +43,7 @@ contract Crowdsale { * @param value weis paid for purchase * @param amount amount of tokens purchased */ - event TokenPurchase( + event TokensPurchased( address indexed purchaser, address indexed beneficiary, uint256 value, @@ -92,7 +92,7 @@ contract Crowdsale { weiRaised = weiRaised.add(weiAmount); _processPurchase(_beneficiary, tokens); - emit TokenPurchase( + emit TokensPurchased( msg.sender, _beneficiary, weiAmount, @@ -111,7 +111,7 @@ contract Crowdsale { /** * @dev Validation of an incoming purchase. Use require statements to revert state when conditions are not met. Use `super` in contracts that inherit from Crowdsale to extend their validations. - * Example from CappedCrowdsale.sol's _preValidatePurchase method: + * Example from CappedCrowdsale.sol's _preValidatePurchase method: * super._preValidatePurchase(_beneficiary, _weiAmount); * require(weiRaised.add(_weiAmount) <= cap); * @param _beneficiary Address performing the token purchase diff --git a/contracts/crowdsale/distribution/FinalizableCrowdsale.sol b/contracts/crowdsale/distribution/FinalizableCrowdsale.sol index b02b1da74..39f84f1ab 100644 --- a/contracts/crowdsale/distribution/FinalizableCrowdsale.sol +++ b/contracts/crowdsale/distribution/FinalizableCrowdsale.sol @@ -15,7 +15,7 @@ contract FinalizableCrowdsale is Ownable, TimedCrowdsale { bool public isFinalized = false; - event Finalized(); + event CrowdsaleFinalized(); /** * @dev Must be called after crowdsale ends, to do some extra finalization @@ -26,7 +26,7 @@ contract FinalizableCrowdsale is Ownable, TimedCrowdsale { require(hasClosed()); finalization(); - emit Finalized(); + emit CrowdsaleFinalized(); isFinalized = true; } diff --git a/contracts/lifecycle/Pausable.sol b/contracts/lifecycle/Pausable.sol index d39bbff08..0a2767aa6 100644 --- a/contracts/lifecycle/Pausable.sol +++ b/contracts/lifecycle/Pausable.sol @@ -9,8 +9,8 @@ import "../ownership/Ownable.sol"; * @dev Base contract which allows children to implement an emergency stop mechanism. */ contract Pausable is Ownable { - event Pause(); - event Unpause(); + event Paused(); + event Unpaused(); bool public paused = false; @@ -36,7 +36,7 @@ contract Pausable is Ownable { */ function pause() public onlyOwner whenNotPaused { paused = true; - emit Pause(); + emit Paused(); } /** @@ -44,6 +44,6 @@ contract Pausable is Ownable { */ function unpause() public onlyOwner whenPaused { paused = false; - emit Unpause(); + emit Unpaused(); } } diff --git a/contracts/token/ERC20/BurnableToken.sol b/contracts/token/ERC20/BurnableToken.sol index 7b1c7c9be..d944c2097 100644 --- a/contracts/token/ERC20/BurnableToken.sol +++ b/contracts/token/ERC20/BurnableToken.sol @@ -9,7 +9,7 @@ import "./StandardToken.sol"; */ contract BurnableToken is StandardToken { - event Burn(address indexed burner, uint256 value); + event TokensBurned(address indexed burner, uint256 value); /** * @dev Burns a specific amount of tokens. @@ -34,6 +34,6 @@ contract BurnableToken is StandardToken { */ function _burn(address _who, uint256 _value) internal { super._burn(_who, _value); - emit Burn(_who, _value); + emit TokensBurned(_who, _value); } } diff --git a/test/crowdsale/AllowanceCrowdsale.test.js b/test/crowdsale/AllowanceCrowdsale.test.js index 26a19c78c..b0d68a9b1 100644 --- a/test/crowdsale/AllowanceCrowdsale.test.js +++ b/test/crowdsale/AllowanceCrowdsale.test.js @@ -37,7 +37,7 @@ contract('AllowanceCrowdsale', function ([_, investor, wallet, purchaser, tokenW describe('high-level purchase', function () { it('should log purchase', async function () { const { logs } = await this.crowdsale.sendTransaction({ value: value, from: investor }); - const event = logs.find(e => e.event === 'TokenPurchase'); + const event = logs.find(e => e.event === 'TokensPurchased'); should.exist(event); event.args.purchaser.should.equal(investor); event.args.beneficiary.should.equal(investor); diff --git a/test/crowdsale/Crowdsale.test.js b/test/crowdsale/Crowdsale.test.js index d08cf9e66..556855796 100644 --- a/test/crowdsale/Crowdsale.test.js +++ b/test/crowdsale/Crowdsale.test.js @@ -82,7 +82,7 @@ contract('Crowdsale', function ([_, investor, wallet, purchaser]) { describe('high-level purchase', function () { it('should log purchase', async function () { const { logs } = await this.crowdsale.sendTransaction({ value: value, from: investor }); - const event = logs.find(e => e.event === 'TokenPurchase'); + const event = logs.find(e => e.event === 'TokensPurchased'); should.exist(event); event.args.purchaser.should.equal(investor); event.args.beneficiary.should.equal(investor); @@ -106,7 +106,7 @@ contract('Crowdsale', function ([_, investor, wallet, purchaser]) { describe('low-level purchase', function () { it('should log purchase', async function () { const { logs } = await this.crowdsale.buyTokens(investor, { value: value, from: purchaser }); - const event = logs.find(e => e.event === 'TokenPurchase'); + const event = logs.find(e => e.event === 'TokensPurchased'); should.exist(event); event.args.purchaser.should.equal(purchaser); event.args.beneficiary.should.equal(investor); diff --git a/test/crowdsale/FinalizableCrowdsale.test.js b/test/crowdsale/FinalizableCrowdsale.test.js index ef4c1d0d7..e0c8eb308 100644 --- a/test/crowdsale/FinalizableCrowdsale.test.js +++ b/test/crowdsale/FinalizableCrowdsale.test.js @@ -56,7 +56,7 @@ contract('FinalizableCrowdsale', function ([_, owner, wallet, thirdparty]) { it('logs finalized', async function () { await increaseTimeTo(this.afterClosingTime); const { logs } = await this.crowdsale.finalize({ from: owner }); - const event = logs.find(e => e.event === 'Finalized'); + const event = logs.find(e => e.event === 'CrowdsaleFinalized'); should.exist(event); }); }); diff --git a/test/crowdsale/MintedCrowdsale.behavior.js b/test/crowdsale/MintedCrowdsale.behavior.js index e7d3053be..f5d61328c 100644 --- a/test/crowdsale/MintedCrowdsale.behavior.js +++ b/test/crowdsale/MintedCrowdsale.behavior.js @@ -20,7 +20,7 @@ function shouldBehaveLikeMintedCrowdsale ([_, investor, wallet, purchaser], rate describe('high-level purchase', function () { it('should log purchase', async function () { const { logs } = await this.crowdsale.sendTransaction({ value: value, from: investor }); - const event = logs.find(e => e.event === 'TokenPurchase'); + const event = logs.find(e => e.event === 'TokensPurchased'); should.exist(event); event.args.purchaser.should.equal(investor); event.args.beneficiary.should.equal(investor); diff --git a/test/lifecycle/Pausable.test.js b/test/lifecycle/Pausable.test.js index 43d49deaa..da37b6e6a 100644 --- a/test/lifecycle/Pausable.test.js +++ b/test/lifecycle/Pausable.test.js @@ -57,9 +57,9 @@ contract('Pausable', function () { it('should log Pause and Unpause events appropriately', async function () { const setPauseLogs = (await this.Pausable.pause()).logs; - expectEvent.inLogs(setPauseLogs, 'Pause'); + expectEvent.inLogs(setPauseLogs, 'Paused'); const setUnPauseLogs = (await this.Pausable.unpause()).logs; - expectEvent.inLogs(setUnPauseLogs, 'Unpause'); + expectEvent.inLogs(setUnPauseLogs, 'Unpaused'); }); }); diff --git a/test/token/ERC20/BurnableToken.behavior.js b/test/token/ERC20/BurnableToken.behavior.js index 74c1632c4..6e4e29181 100644 --- a/test/token/ERC20/BurnableToken.behavior.js +++ b/test/token/ERC20/BurnableToken.behavior.js @@ -29,7 +29,7 @@ function shouldBehaveLikeBurnableToken (owner, initialBalance, [burner]) { }); it('emits a burn event', async function () { - const event = expectEvent.inLogs(this.logs, 'Burn'); + const event = expectEvent.inLogs(this.logs, 'TokensBurned'); event.args.burner.should.equal(owner); event.args.value.should.be.bignumber.equal(amount); }); @@ -80,7 +80,7 @@ function shouldBehaveLikeBurnableToken (owner, initialBalance, [burner]) { }); it('emits a burn event', async function () { - const event = expectEvent.inLogs(this.logs, 'Burn'); + const event = expectEvent.inLogs(this.logs, 'TokensBurned'); event.args.burner.should.equal(owner); event.args.value.should.be.bignumber.equal(amount); }); diff --git a/test/token/ERC20/PausableToken.test.js b/test/token/ERC20/PausableToken.test.js index f91011f49..5f7ccf125 100644 --- a/test/token/ERC20/PausableToken.test.js +++ b/test/token/ERC20/PausableToken.test.js @@ -20,7 +20,7 @@ contract('PausableToken', function ([_, owner, recipient, anotherAccount]) { const { logs } = await this.token.pause({ from }); logs.length.should.equal(1); - logs[0].event.should.equal('Pause'); + logs[0].event.should.equal('Paused'); }); }); @@ -62,7 +62,7 @@ contract('PausableToken', function ([_, owner, recipient, anotherAccount]) { const { logs } = await this.token.unpause({ from }); logs.length.should.equal(1); - logs[0].event.should.equal('Unpause'); + logs[0].event.should.equal('Unpaused'); }); });