Events added to Secondary (#1425)

* Update contracts/ownership/Secondary.sol

* Update Secondary.sol

* Update Secondary.test.js

* Update Secondary.test.js

* Update Secondary.sol
pull/1440/head
Aniket 6 years ago committed by Nicolás Venturo
parent 0231fac514
commit cbe414864f
  1. 14
      contracts/ownership/Secondary.sol
  2. 4
      test/ownership/Secondary.test.js

@ -7,11 +7,16 @@ pragma solidity ^0.4.24;
contract Secondary {
address private _primary;
event PrimaryTransferred(
address recipient
);
/**
* @dev Sets the primary account to the one that is creating the Secondary contract.
*/
constructor() internal {
_primary = msg.sender;
emit PrimaryTransferred(_primary);
}
/**
@ -22,13 +27,20 @@ contract Secondary {
_;
}
/**
* @return the address of the primary.
*/
function primary() public view returns (address) {
return _primary;
}
/**
* @dev Transfers contract to a new primary.
* @param recipient The address of new primary.
*/
function transferPrimary(address recipient) public onlyPrimary {
require(recipient != address(0));
_primary = recipient;
emit PrimaryTransferred(_primary);
}
}

@ -1,4 +1,5 @@
const shouldFail = require('../helpers/shouldFail');
const expectEvent = require('../helpers/expectEvent');
const { ZERO_ADDRESS } = require('../helpers/constants');
const SecondaryMock = artifacts.require('SecondaryMock');
@ -27,7 +28,8 @@ contract('Secondary', function ([_, primary, newPrimary, anyone]) {
describe('transferPrimary', function () {
it('makes the recipient the new primary', async function () {
await this.secondary.transferPrimary(newPrimary, { from: primary });
const { logs } = await this.secondary.transferPrimary(newPrimary, { from: primary });
expectEvent.inLogs(logs, 'PrimaryTransferred', { recipient: newPrimary });
(await this.secondary.primary()).should.equal(newPrimary);
});

Loading…
Cancel
Save