Merge branch 'solc-0.7' into solc-0.8
This commit is contained in:
@ -38,7 +38,7 @@ contract BeaconProxy is Proxy {
|
||||
/**
|
||||
* @dev Returns the current beacon address.
|
||||
*/
|
||||
function _beacon() internal view returns (address beacon) {
|
||||
function _beacon() internal view virtual returns (address beacon) {
|
||||
bytes32 slot = _BEACON_SLOT;
|
||||
// solhint-disable-next-line no-inline-assembly
|
||||
assembly {
|
||||
@ -49,21 +49,21 @@ contract BeaconProxy is Proxy {
|
||||
/**
|
||||
* @dev Returns the current implementation address of the associated beacon.
|
||||
*/
|
||||
function _implementation() internal view override returns (address) {
|
||||
function _implementation() internal view virtual override returns (address) {
|
||||
return IBeacon(_beacon()).implementation();
|
||||
}
|
||||
|
||||
/**
|
||||
* @dev Changes the proxy to use a new beacon.
|
||||
*
|
||||
* If `data` is nonempty, it's used as data in a delegate call to the implementation returned by the beacon.
|
||||
* If `data` is nonempty, it's used as data in a delegate call to the implementation returned by the beacon.
|
||||
*
|
||||
* Requirements:
|
||||
*
|
||||
* - `beacon` must be a contract.
|
||||
* - The implementation returned by `beacon` must be a contract.
|
||||
*/
|
||||
function _setBeacon(address beacon, bytes memory data) internal {
|
||||
function _setBeacon(address beacon, bytes memory data) internal virtual {
|
||||
require(
|
||||
Address.isContract(beacon),
|
||||
"BeaconProxy: beacon is not a contract"
|
||||
|
||||
Reference in New Issue
Block a user