Переглянути джерело

Gas optimizations in Ownable and Secondary contracts #1905 (#1910)

Igor Sobolev 6 роки тому
батько
коміт
6f8e672f3f
2 змінених файлів з 7 додано та 5 видалено
  1. 3 2
      contracts/ownership/Ownable.sol
  2. 4 3
      contracts/ownership/Secondary.sol

+ 3 - 2
contracts/ownership/Ownable.sol

@@ -19,8 +19,9 @@ contract Ownable is Context {
      * @dev Initializes the contract setting the deployer as the initial owner.
      */
     constructor () internal {
-        _owner = _msgSender();
-        emit OwnershipTransferred(address(0), _owner);
+        address msgSender = _msgSender();
+        _owner = msgSender;
+        emit OwnershipTransferred(address(0), msgSender);
     }
 
     /**

+ 4 - 3
contracts/ownership/Secondary.sol

@@ -18,8 +18,9 @@ contract Secondary is Context {
      * @dev Sets the primary account to the one that is creating the Secondary contract.
      */
     constructor () internal {
-        _primary = _msgSender();
-        emit PrimaryTransferred(_primary);
+        address msgSender = _msgSender();
+        _primary = msgSender;
+        emit PrimaryTransferred(msgSender);
     }
 
     /**
@@ -44,6 +45,6 @@ contract Secondary is Context {
     function transferPrimary(address recipient) public onlyPrimary {
         require(recipient != address(0), "Secondary: new primary is the zero address");
         _primary = recipient;
-        emit PrimaryTransferred(_primary);
+        emit PrimaryTransferred(recipient);
     }
 }