* Segregate tests and mocks and wire up integration test base * Switch to a production version of predicting a deployment address * Add integration test for exchange governor migration * Add integration test for treassury migration * Add integration test for migrating the treasury * Add governance upgrade action to transfer ZRX tokens to new governor * Add governance upgrade action to transfer wCELO tokens to new governor * Add governance upgrade action to transfer WYV tokens to new governor * Turn on verbose logging
		
			
				
	
	
		
			49 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Solidity
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Solidity
		
	
	
	
	
	
// SPDX-License-Identifier: Apache-2.0
 | 
						|
/*
 | 
						|
  Copyright 2023 ZeroEx Intl.
 | 
						|
  Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
  you may not use this file except in compliance with the License.
 | 
						|
  You may obtain a copy of the License at
 | 
						|
    http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
  Unless required by applicable law or agreed to in writing, software
 | 
						|
  distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
  See the License for the specific language governing permissions and
 | 
						|
  limitations under the License.
 | 
						|
*/
 | 
						|
 | 
						|
pragma solidity ^0.8.19;
 | 
						|
pragma experimental ABIEncoderV2;
 | 
						|
 | 
						|
/// @dev Basic registry management features.
 | 
						|
interface ISimpleFunctionRegistryFeature {
 | 
						|
    /// @dev A function implementation was updated via `extend()` or `rollback()`.
 | 
						|
    /// @param selector The function selector.
 | 
						|
    /// @param oldImpl The implementation contract address being replaced.
 | 
						|
    /// @param newImpl The replacement implementation contract address.
 | 
						|
    event ProxyFunctionUpdated(bytes4 indexed selector, address oldImpl, address newImpl);
 | 
						|
 | 
						|
    /// @dev Roll back to a prior implementation of a function.
 | 
						|
    /// @param selector The function selector.
 | 
						|
    /// @param targetImpl The address of an older implementation of the function.
 | 
						|
    function rollback(bytes4 selector, address targetImpl) external;
 | 
						|
 | 
						|
    /// @dev Register or replace a function.
 | 
						|
    /// @param selector The function selector.
 | 
						|
    /// @param impl The implementation contract for the function.
 | 
						|
    function extend(bytes4 selector, address impl) external;
 | 
						|
 | 
						|
    /// @dev Retrieve the length of the rollback history for a function.
 | 
						|
    /// @param selector The function selector.
 | 
						|
    /// @return rollbackLength The number of items in the rollback history for
 | 
						|
    ///         the function.
 | 
						|
    function getRollbackLength(bytes4 selector) external view returns (uint256 rollbackLength);
 | 
						|
 | 
						|
    /// @dev Retrieve an entry in the rollback history for a function.
 | 
						|
    /// @param selector The function selector.
 | 
						|
    /// @param idx The index in the rollback history.
 | 
						|
    /// @return impl An implementation address for the function at
 | 
						|
    ///         index `idx`.
 | 
						|
    function getRollbackEntryAtIndex(bytes4 selector, uint256 idx) external view returns (address impl);
 | 
						|
}
 |