Skip to content
LogoLogo

MachineShareOracleFactory

Git Source

Inherits: AccessManagedUpgradeable, IMachineShareOracleFactory

Constants

MachineShareOracleFactoryStorageLocation

bytes32 private constant MachineShareOracleFactoryStorageLocation =
        0x566402f20de4969fde1c09f6ddbae1c0f5590a4d61e4a12b6deb88f69bf7c700;

Functions

_getMachineShareOracleFactoryStorage

function _getMachineShareOracleFactoryStorage() internal pure returns (MachineShareOracleFactoryStorage storage $);

Returns

NameTypeDescription
$MachineShareOracleFactoryStorage

constructor

constructor();

initialize

function initialize(address _machineShareOracleBeacon, address _initialAuthority) external initializer;

Parameters

NameTypeDescription
_machineShareOracleBeaconaddress
_initialAuthorityaddress

machineShareOracleBeacon

Address of the machine share oracle beacon.

function machineShareOracleBeacon() external view override returns (address);

Returns

NameTypeDescription
<none>address

isMachineShareOracle

Address => Whether this is an oracle deployed by this factory.

function isMachineShareOracle(address oracle) external view override returns (bool);

Parameters

NameTypeDescription
oracleaddressThe oracle address to check.

Returns

NameTypeDescription
<none>bool

createMachineShareOracle

Creates an oracle for the given machine share.

function createMachineShareOracle(address shareOwner, uint8 decimals)
        external
        override
        restricted
        returns (address);

Parameters

NameTypeDescription
shareOwneraddressThe current owner contract of the share (machine or pre-deposit vault).
decimalsuint8Decimals to use for the oracle price.

Returns

NameTypeDescription
<none>address

setMachineShareOracleBeacon

Sets the machine share oracle beacon address.

function setMachineShareOracleBeacon(address _machineShareOracleBeacon) external override restricted;

Parameters

NameTypeDescription
_machineShareOracleBeaconaddressThe address of the machine share oracle beacon.

Structs

MachineShareOracleFactoryStorage

Note:

  • storage-location: erc7201:makina.storage.MachineShareOracleFactory
struct MachineShareOracleFactoryStorage {
        mapping(address oracle => bool isOracle) _isMachineShareOracle;
        address _machineShareOracleBeacon;
    }

Properties

NameTypeDescription
_isMachineShareOraclemapping(address oracle => bool isOracle)
_machineShareOracleBeaconaddress