Contract 0x07968a755a977aca0a76b91e66ec3a7d46a4824a

Txn Hash Method
Block
From
To
Value [Txn Fee]
0x36b4304bb9b76f3322224eef107b99d3b3ce237bd19a0cd9247cbadc7c805236Set Oracle For A...16512422022-08-14 14:58:0651 days 20 hrs ago0x7c1d6e7c7240f9218a71cf54c1908f1713093a32 IN  Ola Finance: Ministry0 GLMR0.003472546696
0x0620251adb5e03d4d76bc9c92bd4c960cbf2f7d26e1096157b178b75bd833ecaSet Oracle For A...16512392022-08-14 14:57:3051 days 20 hrs ago0x7c1d6e7c7240f9218a71cf54c1908f1713093a32 IN  Ola Finance: Ministry0 GLMR0.003410366
0x08261e426e6ba7c041caa5b48323f085edc32c4fdcc01039bd5e90c3ad4b586fSet Oracle For A...16512332022-08-14 14:56:1851 days 20 hrs ago0x7c1d6e7c7240f9218a71cf54c1908f1713093a32 IN  Ola Finance: Ministry0 GLMR0.00350761208
0x81a3fcc5b6e9d7f33b2ecab1a7244fdc643c0d26988efbe37d753eb1022b40c7Set Oracle For A...16512262022-08-14 14:54:5451 days 20 hrs ago0x7c1d6e7c7240f9218a71cf54c1908f1713093a32 IN  Ola Finance: Ministry0 GLMR0.010171818292
0x81efe6155ae5664b28a4905714165e917c86d3207b6182baa242b83a3ed58a1aSet Oracle For A...16512252022-08-14 14:54:3651 days 20 hrs ago0x7c1d6e7c7240f9218a71cf54c1908f1713093a32 IN  Ola Finance: Ministry0 GLMR0.003410366
0xaae87beb99e5d6f27c692db7a8591a742a17ed96e925b46e3ec9b1cfceec8795Set Oracle For A...16512202022-08-14 14:53:3651 days 20 hrs ago0x7c1d6e7c7240f9218a71cf54c1908f1713093a32 IN  Ola Finance: Ministry0 GLMR0.003410366
0x0912414fe1dd8f55723693642c5f85b98c366130506dbceb8b02238b560ab26bSet Oracle For A...16511462022-08-14 14:38:2451 days 20 hrs ago0x7c1d6e7c7240f9218a71cf54c1908f1713093a32 IN  Ola Finance: Ministry0 GLMR0.003410366
0x074aab98f2a7a8fa301b3ff99922cabce6844bfada73be1cff40ba9fc575a21aSet Oracle For A...13159232022-06-26 12:58:24100 days 22 hrs ago0x7c1d6e7c7240f9218a71cf54c1908f1713093a32 IN  Ola Finance: Ministry0 GLMR0.003410366
0x6ff4cc506984d2d7a2a5734c4737199764f25a55c2a5797f071e702a4e7ae97eSet Oracle For A...13158852022-06-26 12:50:18100 days 22 hrs ago0x7c1d6e7c7240f9218a71cf54c1908f1713093a32 IN  Ola Finance: Ministry0 GLMR0.003410366
0xf3ab7be27b632e28bd79b6f887cc72897840de4928c50aa6507709a1c7c9c57b_set Pending Imp...10589912022-05-19 13:47:24138 days 21 hrs ago0x7c1d6e7c7240f9218a71cf54c1908f1713093a32 IN  Ola Finance: Ministry0 GLMR0.080987267696
0x628c3e724f4e0b81c952098f1292495e85ab68a8ffd9c24eed93ae600d6a63f6Set Oracle For A...7057392022-03-29 10:39:24190 days 46 mins ago0x7c1d6e7c7240f9218a71cf54c1908f1713093a32 IN  Ola Finance: Ministry0 GLMR0.0067576
0xf094c28c8617a9328185d45d6ef14bff548f0414d6218dcb90f2919fb4959876Set Oracle For A...7056772022-03-29 10:26:24190 days 59 mins ago0x7c1d6e7c7240f9218a71cf54c1908f1713093a32 IN  Ola Finance: Ministry0 GLMR0.0067576
0xd27a07df5c430c6b15f6bca01c8b430e9020e830b2d36529ecc2bf40134003a0Set Oracle For A...7056712022-03-29 10:25:00190 days 1 hr ago0x7c1d6e7c7240f9218a71cf54c1908f1713093a32 IN  Ola Finance: Ministry0 GLMR0.0067576
0xfb00b38d48abdca6e96d9a0f2acbf903d5baf8fb25375d716719b8b0b3065519Register New Ln6731392022-03-24 18:23:30194 days 17 hrs ago0x7c1d6e7c7240f9218a71cf54c1908f1713093a32 IN  Ola Finance: Ministry0 GLMR0.0110048
0x631ea6a61156fa65b935f5e759ef3f3300e6a196bde1133e283e81818b9b907fSet Oracle For A...6730572022-03-24 18:06:58194 days 17 hrs ago0x7c1d6e7c7240f9218a71cf54c1908f1713093a32 IN  Ola Finance: Ministry0 GLMR0.0107376
0x898a55f0582a699cbd4d09169c86140185a7c890f88ae32ac9d6e2f753342c9eSet Oracle For A...6730402022-03-24 18:02:48194 days 17 hrs ago0x7c1d6e7c7240f9218a71cf54c1908f1713093a32 IN  Ola Finance: Ministry0 GLMR0.0107376
0x46731fa4c461cdca89fee4d1f28919d3ad08211dbb46b60ad7bed97e59b302c1Set Oracle For A...6730372022-03-24 18:02:12194 days 17 hrs ago0x7c1d6e7c7240f9218a71cf54c1908f1713093a32 IN  Ola Finance: Ministry0 GLMR0.0107376
0xc152fb6f8ede5874616bbbe73c40ebafa47ab51e9769e0793e6e90cc18ec2ba9Set Oracle For A...6730292022-03-24 18:00:30194 days 17 hrs ago0x7c1d6e7c7240f9218a71cf54c1908f1713093a32 IN  Ola Finance: Ministry0 GLMR0.0107376
0xa444956273291b402b13ce5bf4f21aa58be39a04756da8673927150a71a68cb5_accept Admin4160782022-02-15 18:43:42231 days 16 hrs ago0x7c1d6e7c7240f9218a71cf54c1908f1713093a32 IN  Ola Finance: Ministry0 GLMR0.0023148
0x79620df944aac0ba43de7c65676062a27e8ec8c67f17fa3be9d0549b48ea4ec2_set Pending Adm...4160652022-02-15 18:40:48231 days 16 hrs ago0xc333a03e8040cad31993e02615fd1b3f88447d95 IN  Ola Finance: Ministry0 GLMR0.0047427
0xf1133b489142b97e75fcd2c386ec58c4f863bc153b201f7ea35c20927632c6d8Register New Ln3335302022-02-03 16:07:42243 days 19 hrs ago0xc333a03e8040cad31993e02615fd1b3f88447d95 IN  Ola Finance: Ministry0 GLMR0.0047924
0x00ee3c6781d40a0cd387c12c7ea70c4a910b7351fee5a90bf5d55c46e1aba3a3Set Oracle For A...3333392022-02-03 15:27:54243 days 19 hrs ago0xc333a03e8040cad31993e02615fd1b3f88447d95 IN  Ola Finance: Ministry0 GLMR0.0047888
0x7f1d60c70e3ba5114e6263dfb920e0f7b898e1c4adc311476044e9d799e506d5Set Oracle For A...3320562022-02-03 11:03:48244 days 22 mins ago0xc333a03e8040cad31993e02615fd1b3f88447d95 IN  Ola Finance: Ministry0 GLMR0.0047888
0x95b995ad1a71530b434eb06dcfafb5dfb833a81b462bab8a6c72a3192e79c571Set Oracle For A...3320542022-02-03 11:03:24244 days 22 mins ago0xc333a03e8040cad31993e02615fd1b3f88447d95 IN  Ola Finance: Ministry0 GLMR0.0047888
0x57b0837ce30b86e32d6a704c054990f68116dd29ba60daf1a19c4bf1735f6fdaSet Oracle For A...3320522022-02-03 11:03:00244 days 22 mins ago0xc333a03e8040cad31993e02615fd1b3f88447d95 IN  Ola Finance: Ministry0 GLMR0.0047888
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Ministry

Compiler Version
v0.5.16+commit.9c3226ce

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 2 : Ministry.sol
pragma solidity ^0.5.16;

import "./RegistryStorage.sol";

/**
 * @title RegistryCore
 * @dev Storage for the Registry is at this address, while execution is delegated to the `implementation`.
 * OTokens and Unitrollers should reference this contract as their Registry.
 */
contract Ministry is UnistryAdminStorage {

    /**
      * @notice Emitted when implementation is changed
      */
    event NewPendingImplementation(address oldPendingImplementation, address newPendingImplementation);

    /**
      * @notice Emitted when pendingImplementation is accepted, which means Registry implementation is updated
      */
    event NewImplementation(address oldImplementation, address newImplementation);

    /**
      * @notice Emitted when pendingAdmin is changed
      */
    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);

    /**
      * @notice Emitted when pendingAdmin is accepted, which means admin is updated
      */
    event NewAdmin(address oldAdmin, address newAdmin);

    constructor(bool _blocksBased) public {
        // Set admin to caller
        admin = msg.sender;

        // Set the calculation base for this blockchain contracts
        blocksBased = _blocksBased;
    }

    /*** Admin Functions ***/
    function _setPendingImplementation(address newPendingImplementation) public returns (uint) {

        require(msg.sender == admin, "Not Admin");

        address oldPendingImplementation = pendingImplementation;

        pendingImplementation = newPendingImplementation;

        emit NewPendingImplementation(oldPendingImplementation, pendingImplementation);

//        return uint(Error.NO_ERROR);
        return 0;
    }

    /**
    * @notice Accepts new implementation of Registry. msg.sender must be pendingImplementation
    * @dev Admin function for new implementation to accept it's role as implementation
    * @return uint 0=success, otherwise a failure (see ErrorReporter.sol for details)
    */
    function _acceptImplementation() public returns (uint) {
        // Check caller is pendingImplementation and pendingImplementation ≠ address(0)
        require(msg.sender == pendingImplementation && pendingImplementation != address(0), "Not the EXISTING registry implementation");

        // Save current values for inclusion in log
        address oldImplementation = implementation;
        address oldPendingImplementation = pendingImplementation;

        implementation = pendingImplementation;

        pendingImplementation = address(0);

        emit NewImplementation(oldImplementation, implementation);
        emit NewPendingImplementation(oldPendingImplementation, pendingImplementation);

        return 0;
    }


    /**
      * @notice Begins transfer of admin rights. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.
      * @dev Admin function to begin change of admin. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.
      * @param newPendingAdmin New pending admin.
      * @return uint 0=success, otherwise a failure (see ErrorReporter.sol for details)
      */
    function _setPendingAdmin(address newPendingAdmin) public returns (uint) {
        // Check caller = admin
        require(msg.sender == admin, "Not Admin");

        // Save current value, if any, for inclusion in log
        address oldPendingAdmin = pendingAdmin;

        // Store pendingAdmin with value newPendingAdmin
        pendingAdmin = newPendingAdmin;

        // Emit NewPendingAdmin(oldPendingAdmin, newPendingAdmin)
        emit NewPendingAdmin(oldPendingAdmin, newPendingAdmin);

//        return uint(Error.NO_ERROR);
        return 0;
    }

    /**
      * @notice Accepts transfer of admin rights. msg.sender must be pendingAdmin
      * @dev Admin function for pending admin to accept role and update admin
      * @return uint 0=success, otherwise a failure (see ErrorReporter.sol for details)
      */
    function _acceptAdmin() public returns (uint) {
        // Check caller is pendingAdmin and pendingAdmin ≠ address(0)
        require(msg.sender == pendingAdmin && pendingAdmin != address(0), "Not the EXISTING pending admin");

        // Save current values for inclusion in log
        address oldAdmin = admin;
        address oldPendingAdmin = pendingAdmin;

        // Store admin with value pendingAdmin
        admin = pendingAdmin;

        // Clear the pending value
        pendingAdmin = address(0);

        emit NewAdmin(oldAdmin, admin);
        emit NewPendingAdmin(oldPendingAdmin, pendingAdmin);

//        return uint(Error.NO_ERROR);
        return 0;
    }

    /**
     * @dev Delegates execution to an implementation contract.
     * It returns to the external caller whatever the implementation returns
     * or forwards reverts.
     */
    function () payable external {
        // delegate all other functions to current implementation
        (bool success, ) = implementation.delegatecall(msg.data);

        assembly {
              let free_mem_ptr := mload(0x40)
              returndatacopy(free_mem_ptr, 0, returndatasize)

              switch success
              case 0 { revert(free_mem_ptr, returndatasize) }
              default { return(free_mem_ptr, returndatasize) }
        }
    }
}

File 2 of 2 : RegistryStorage.sol
pragma solidity ^0.5.16;

contract UnistryAdminStorage {
    /**
    * @notice Administrator for this contract
    */
    address public admin;

    /**
    * @notice Pending administrator for this contract
    */
    address public pendingAdmin;

    /**
    * @notice Active brains of Ministry
    */
    address public implementation;

    /**
    * @notice Pending brains of Ministry
    */
    address public pendingImplementation;

    // Indicates if calculations should be block based or time based
    bool public blocksBased;
}

contract RegistryV0Storage is UnistryAdminStorage {
    // The address to send the 'Ola Part' when reducing reserves.
    address public olaBankAddress;

    // Part of reserves that are allocated to Ola (Deprecated)
    uint256 public olaReservesFactorMantissa;

    // Asset address -> Price oracle address
    mapping(address => address) public priceOracles;

    // The latest system version
    uint256 public latestSystemVersion;

    // Unitroller address -> System version (MAX_INT means always take latest)
    mapping(address => uint256) public lnVersions;

    // System version -> (contract name hash -> implementation)
    mapping(uint256 => mapping(bytes32 => address)) public implementations;

    // System versions => isSupported
    mapping(uint256 => bool) public supportedSystemVersions;

    // Interest rate model address => isSupported
    mapping(address => bool) public supportedInterestRateModels;
}

contract RegistryV1Storage is RegistryV0Storage {
    // System version -> OTokens Factory
    mapping(uint256 => address) public tokenFactories;

    // Contract name hash => Contract factory
    mapping(bytes32 => address) public peripheralFactories;
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "metadata": {
    "useLiteralContent": true
  },
  "libraries": {}
}

Contract ABI

[{"inputs":[{"internalType":"bool","name":"_blocksBased","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"NewAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldImplementation","type":"address"},{"indexed":false,"internalType":"address","name":"newImplementation","type":"address"}],"name":"NewImplementation","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldPendingAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newPendingAdmin","type":"address"}],"name":"NewPendingAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldPendingImplementation","type":"address"},{"indexed":false,"internalType":"address","name":"newPendingImplementation","type":"address"}],"name":"NewPendingImplementation","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":false,"inputs":[],"name":"_acceptAdmin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"_acceptImplementation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newPendingAdmin","type":"address"}],"name":"_setPendingAdmin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newPendingImplementation","type":"address"}],"name":"_setPendingImplementation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"blocksBased","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pendingAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pendingImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b506040516107183803806107188339818101604052602081101561003357600080fd5b5051600080546001600160a01b0319163317905560038054911515600160a01b0260ff60a01b199092169190911790556106a6806100726000396000f3fe6080604052600436106100865760003560e01c8063b9ab55eb11610059578063b9ab55eb146101a9578063c1e80334146101d2578063e992a041146101e7578063e9c714f21461021a578063f851a4401461022f57610086565b80632678224714610109578063396f7b231461013a5780635c60da1b1461014f578063b71d1a0c14610164575b6002546040516000916001600160a01b031690829036908083838082843760405192019450600093509091505080830381855af49150503d80600081146100e9576040519150601f19603f3d011682016040523d82523d6000602084013e6100ee565b606091505b505090506040513d6000823e818015610105573d82f35b3d82fd5b34801561011557600080fd5b5061011e610244565b604080516001600160a01b039092168252519081900360200190f35b34801561014657600080fd5b5061011e610253565b34801561015b57600080fd5b5061011e610262565b34801561017057600080fd5b506101976004803603602081101561018757600080fd5b50356001600160a01b0316610271565b60408051918252519081900360200190f35b3480156101b557600080fd5b506101be610325565b604080519115158252519081900360200190f35b3480156101de57600080fd5b50610197610335565b3480156101f357600080fd5b506101976004803603602081101561020a57600080fd5b50356001600160a01b0316610453565b34801561022657600080fd5b50610197610506565b34801561023b57600080fd5b5061011e61063a565b6001546001600160a01b031681565b6003546001600160a01b031681565b6002546001600160a01b031681565b600080546001600160a01b031633146102bd576040805162461bcd60e51b81526020600482015260096024820152682737ba1020b236b4b760b91b604482015290519081900360640190fd5b600180546001600160a01b038481166001600160a01b0319831681179093556040805191909216808252602082019390935281517fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a9929181900390910190a150600092915050565b600354600160a01b900460ff1681565b6003546000906001600160a01b03163314801561035c57506003546001600160a01b031615155b6103975760405162461bcd60e51b815260040180806020018281038252602881526020018061064a6028913960400191505060405180910390fd5b60028054600380546001600160a01b038082166001600160a01b031980861682179687905590921690925560408051938316808552949092166020840152815190927fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a92908290030190a1600354604080516001600160a01b038085168252909216602083015280517fe945ccee5d701fc83f9b8aa8ca94ea4219ec1fcbd4f4cab4f0ea57c5c3e1d8159281900390910190a160009250505090565b600080546001600160a01b0316331461049f576040805162461bcd60e51b81526020600482015260096024820152682737ba1020b236b4b760b91b604482015290519081900360640190fd5b600380546001600160a01b038481166001600160a01b0319831617928390556040805192821680845293909116602083015280517fe945ccee5d701fc83f9b8aa8ca94ea4219ec1fcbd4f4cab4f0ea57c5c3e1d8159281900390910190a150600092915050565b6001546000906001600160a01b03163314801561052d57506001546001600160a01b031615155b61057e576040805162461bcd60e51b815260206004820152601e60248201527f4e6f7420746865204558495354494e472070656e64696e672061646d696e0000604482015290519081900360640190fd5b60008054600180546001600160a01b038082166001600160a01b031980861682179687905590921690925560408051938316808552949092166020840152815190927ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc92908290030190a1600154604080516001600160a01b038085168252909216602083015280517fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a99281900390910190a160009250505090565b6000546001600160a01b03168156fe4e6f7420746865204558495354494e4720726567697374727920696d706c656d656e746174696f6ea265627a7a72315820aefd0e73eb5aee7b04569288d0d67abc4fcf37388faadd65751dce35c06c443664736f6c634300051000320000000000000000000000000000000000000000000000000000000000000000

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _blocksBased (bool): False

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000000


Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.