Răsfoiți Sursa

Events added to Secondary (#1425)

* Update contracts/ownership/Secondary.sol

* Update Secondary.sol

* Update Secondary.test.js

* Update Secondary.test.js

* Update Secondary.sol
Aniket 7 ani în urmă
părinte
comite
cbe414864f
2 a modificat fișierele cu 17 adăugiri și 3 ștergeri
  1. 14 2
      contracts/ownership/Secondary.sol
  2. 3 1
      test/ownership/Secondary.test.js

+ 14 - 2
contracts/ownership/Secondary.sol

@@ -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);
   }
 }

+ 3 - 1
test/ownership/Secondary.test.js

@@ -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);
     });