22 lines
1001 B
Solidity
22 lines
1001 B
Solidity
// SPDX-License-Identifier: AGPL-3.0-only
|
|
pragma solidity ^0.8.0;
|
|
|
|
/**
|
|
* @title Provides addresses of the live contracts implementing certain interfaces.
|
|
* @dev Examples are the Oracle or Store interfaces.
|
|
*/
|
|
interface FinderInterface {
|
|
/**
|
|
* @notice Updates the address of the contract that implements `interfaceName`.
|
|
* @param interfaceName bytes32 encoding of the interface name that is either changed or registered.
|
|
* @param implementationAddress address of the deployed contract that implements the interface.
|
|
*/
|
|
function changeImplementationAddress(bytes32 interfaceName, address implementationAddress) external;
|
|
|
|
/**
|
|
* @notice Gets the address of the contract that implements the given `interfaceName`.
|
|
* @param interfaceName queried interface.
|
|
* @return implementationAddress address of the deployed contract that implements the interface.
|
|
*/
|
|
function getImplementationAddress(bytes32 interfaceName) external view returns (address);
|
|
} |