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