소스 검색

Improve code comments in ERC1967._upgradeToAndCallSecure

Francisco Giordano 4 년 전
부모
커밋
2e6ef74593
1개의 변경된 파일7개의 추가작업 그리고 7개의 파일을 삭제
  1. 7 7
      contracts/proxy/ERC1967/ERC1967Upgrade.sol

+ 7 - 7
contracts/proxy/ERC1967/ERC1967Upgrade.sol

@@ -61,16 +61,17 @@ abstract contract ERC1967Upgrade is ERC1967Storage {
      */
     function _upgradeToAndCallSecure(address newImplementation, bytes memory data, bool forceCall) internal {
         address oldImplementation = _getImplementation();
-        // do inital upgrade
+
+        // Initial upgrade and setup call
         _setImplementation(newImplementation);
-        // do setup call
         if (data.length > 0 || forceCall) {
             Address.functionDelegateCall(newImplementation, data);
         }
-        // check if nested in an upgrade check
+
+        // Perform rollback test if not already in progress
         StorageSlot.BooleanSlot storage rollbackTesting = StorageSlot.getBooleanSlot(_ROLLBACK_SLOT);
         if (!rollbackTesting.value) {
-            // trigger upgrade check with flag set to true
+            // Trigger rollback using upgradeTo from the new implementation
             rollbackTesting.value = true;
             Address.functionDelegateCall(
                 newImplementation,
@@ -80,11 +81,10 @@ abstract contract ERC1967Upgrade is ERC1967Storage {
                 )
             );
             rollbackTesting.value = false;
-            // check upgrade was effective
+            // Check rollback was effective
             require(oldImplementation == _getImplementation(), "ERC1967Upgrade: upgrade breaks further upgrades");
-            // reset upgrade
+            // Finally reset to the new implementation and log the upgrade
             _setImplementation(newImplementation);
-            // emit event
             emit Upgraded(newImplementation);
         }
     }