* 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
37 lines
1.7 KiB
Solidity
37 lines
1.7 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;
|
|
|
|
import "@0x/contracts-utils/contracts/src/v08/interfaces/IOwnableV08.sol";
|
|
|
|
/// @dev Owner management and migration features.
|
|
interface IOwnableFeature is IOwnableV08 {
|
|
/// @dev Emitted when `migrate()` is called.
|
|
/// @param caller The caller of `migrate()`.
|
|
/// @param migrator The migration contract.
|
|
/// @param newOwner The address of the new owner.
|
|
event Migrated(address caller, address migrator, address newOwner);
|
|
|
|
/// @dev Execute a migration function in the context of the ZeroEx contract.
|
|
/// The result of the function being called should be the magic bytes
|
|
/// 0x2c64c5ef (`keccack('MIGRATE_SUCCESS')`). Only callable by the owner.
|
|
/// The owner will be temporarily set to `address(this)` inside the call.
|
|
/// Before returning, the owner will be set to `newOwner`.
|
|
/// @param target The migrator contract address.
|
|
/// @param newOwner The address of the new owner.
|
|
/// @param data The call data.
|
|
function migrate(address target, bytes calldata data, address newOwner) external;
|
|
}
|