ETH Price: $3,106.31 (+0.79%)
Gas: 12 Gwei

Contract

0xC8953ca384b4AdC8B1b11B030Afe2F05471664b0
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Set Whitelisted ...144303352022-03-21 14:48:37761 days ago1647874117IN
Metis Andromeda: MVM Discount Oracle
0 ETH0.0013035524.6045874
Set Discount136433082021-11-19 3:28:57883 days ago1637292537IN
Metis Andromeda: MVM Discount Oracle
0 ETH0.0050101141.96546457
Set Whitelisted ...136306802021-11-17 3:54:05885 days ago1637121245IN
Metis Andromeda: MVM Discount Oracle
0 ETH0.01336146252.19819133
Set Whitelisted ...136306682021-11-17 3:50:37885 days ago1637121037IN
Metis Andromeda: MVM Discount Oracle
0 ETH0.01441938272.16657457
0x60806040136305052021-11-17 3:12:45885 days ago1637118765IN
 Create: MVM_DiscountOracle
0 ETH0.13444752126.93236596

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
145775562022-04-13 14:08:36738 days ago1649858916
Metis Andromeda: MVM Discount Oracle
0.0001 ETH
145775562022-04-13 14:08:36738 days ago1649858916
Metis Andromeda: MVM Discount Oracle
0.0001 ETH
145775412022-04-13 14:05:38738 days ago1649858738
Metis Andromeda: MVM Discount Oracle
0.0001 ETH
145775412022-04-13 14:05:38738 days ago1649858738
Metis Andromeda: MVM Discount Oracle
0.0001 ETH
145774432022-04-13 13:44:10738 days ago1649857450
Metis Andromeda: MVM Discount Oracle
0.0001 ETH
145774432022-04-13 13:44:10738 days ago1649857450
Metis Andromeda: MVM Discount Oracle
0.0001 ETH
145774132022-04-13 13:36:42738 days ago1649857002
Metis Andromeda: MVM Discount Oracle
0.0001 ETH
145774132022-04-13 13:36:42738 days ago1649857002
Metis Andromeda: MVM Discount Oracle
0.0001 ETH
145773892022-04-13 13:31:25738 days ago1649856685
Metis Andromeda: MVM Discount Oracle
0.0001 ETH
145773892022-04-13 13:31:25738 days ago1649856685
Metis Andromeda: MVM Discount Oracle
0.0001 ETH
145773722022-04-13 13:28:05738 days ago1649856485
Metis Andromeda: MVM Discount Oracle
0.0001 ETH
145773722022-04-13 13:28:05738 days ago1649856485
Metis Andromeda: MVM Discount Oracle
0.0001 ETH
145773562022-04-13 13:23:37738 days ago1649856217
Metis Andromeda: MVM Discount Oracle
0.0001 ETH
145773562022-04-13 13:23:37738 days ago1649856217
Metis Andromeda: MVM Discount Oracle
0.0001 ETH
145772882022-04-13 13:09:08738 days ago1649855348
Metis Andromeda: MVM Discount Oracle
0.0001 ETH
145772882022-04-13 13:09:08738 days ago1649855348
Metis Andromeda: MVM Discount Oracle
0.0001 ETH
145772842022-04-13 13:08:36738 days ago1649855316
Metis Andromeda: MVM Discount Oracle
0.0001 ETH
145772842022-04-13 13:08:36738 days ago1649855316
Metis Andromeda: MVM Discount Oracle
0.0001 ETH
145772722022-04-13 13:05:52738 days ago1649855152
Metis Andromeda: MVM Discount Oracle
0.0001 ETH
145772722022-04-13 13:05:52738 days ago1649855152
Metis Andromeda: MVM Discount Oracle
0.0001 ETH
145770742022-04-13 12:21:48738 days ago1649852508
Metis Andromeda: MVM Discount Oracle
0.0001 ETH
145770742022-04-13 12:21:48738 days ago1649852508
Metis Andromeda: MVM Discount Oracle
0.0001 ETH
145770692022-04-13 12:20:55738 days ago1649852455
Metis Andromeda: MVM Discount Oracle
0.0001 ETH
145770692022-04-13 12:20:55738 days ago1649852455
Metis Andromeda: MVM Discount Oracle
0.0001 ETH
145770662022-04-13 12:20:00738 days ago1649852400
Metis Andromeda: MVM Discount Oracle
0.0001 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MVM_DiscountOracle

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 10000 runs

Other Settings:
default evmVersion
File 1 of 6 : MVM_DiscountOracle.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;
/* Contract Imports */
/* External Imports */

import { iMVM_DiscountOracle } from "./iMVM_DiscountOracle.sol";
import { Lib_AddressResolver } from "../libraries/resolver/Lib_AddressResolver.sol";

contract MVM_DiscountOracle is iMVM_DiscountOracle, Lib_AddressResolver{
    // Current l2 gas price
    uint256 public discount;
    uint256 public minL2Gas;
    mapping (address => bool) public xDomainWL;
    bool allowAllXDomainSenders;
    string constant public CONFIG_OWNER_KEY = "METIS_MANAGER";

    /**********************
     * Function Modifiers *
     **********************/

    modifier onlyManager() {
        require(
            msg.sender == resolve(CONFIG_OWNER_KEY),
            "MVM_DiscountOracle: Function can only be called by the METIS_MANAGER."
        );
        _;
    }


    constructor(
      address _addressManager,
      uint256 _initialDiscount
    )
      Lib_AddressResolver(_addressManager)
    {
      discount = _initialDiscount;
      minL2Gas = 200_000;
      allowAllXDomainSenders = false;
    }


    function getMinL2Gas() view public override returns (uint256){
      return minL2Gas;
    }

    function getDiscount() view public override returns (uint256){
      return discount;
    }

    function setDiscount(
        uint256 _discount
    )
        public
        override
        onlyManager
    {
        discount = _discount;
    }

    function setMinL2Gas(
        uint256 _minL2Gas
    )
        public
        override
        onlyManager
    {
        minL2Gas = _minL2Gas;
    }

    function setWhitelistedXDomainSender(
        address _sender,
        bool _isWhitelisted
    )
        external
        override
        onlyManager
    {
        xDomainWL[_sender] = _isWhitelisted;
    }

    function isXDomainSenderAllowed(
        address _sender
    )
        view
        override
        public
        returns (
            bool
        )
    {
        return (
            allowAllXDomainSenders == true
            || xDomainWL[_sender]
        );
    }

    function setAllowAllXDomainSenders(
        bool _allowAllXDomainSenders
    )
        public
        override
        onlyManager
    {
        allowAllXDomainSenders = _allowAllXDomainSenders;
    }

    function processL2SeqGas(address sender, uint256 _chainId)
    public payable override {
        require(isXDomainSenderAllowed(sender), "sender is not whitelisted");
        string memory ch = string(abi.encodePacked(uint2str(_chainId),"_MVM_Sequencer"));

        address sequencer = resolve(ch);
        require (sequencer != address(0), string(abi.encodePacked("sequencer address not available: ", ch)));

        //take the fee
        (bool sent, ) = sequencer.call{value: msg.value}("");
        require(sent, "Failed to send Ether");
    }


    function uint2str(uint _i) internal pure returns (string memory _uintAsString) {
        if (_i == 0) {
            return "0";
        }
        uint j = _i;
        uint len;
        while (j != 0) {
            len++;
            j /= 10;
        }
        bytes memory bstr = new bytes(len);
        uint k = len;
        while (_i != 0) {
            k = k-1;
            uint8 temp = (48 + uint8(_i - _i / 10 * 10));
            bytes1 b1 = bytes1(temp);
            bstr[k] = b1;
            _i /= 10;
        }
        return string(bstr);
    }
}

File 3 of 6 : iMVM_DiscountOracle.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;

interface iMVM_DiscountOracle{

    function setDiscount(
        uint256 _discount
    ) external;
    
    function setMinL2Gas(
        uint256 _minL2Gas
    ) external;
    
    function setWhitelistedXDomainSender(
        address _sender,
        bool _isWhitelisted
    ) external;
    
    function isXDomainSenderAllowed(
        address _sender
    ) view external returns(bool);
    
    function setAllowAllXDomainSenders(
        bool _allowAllXDomainSenders
    ) external;
    
    function getMinL2Gas() view external returns(uint256);
    function getDiscount() view external returns(uint256);
    function processL2SeqGas(address sender, uint256 _chainId) external payable;
}

File 4 of 6 : Lib_AddressResolver.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;

/* Library Imports */
import { Lib_AddressManager } from "./Lib_AddressManager.sol";

/**
 * @title Lib_AddressResolver
 */
abstract contract Lib_AddressResolver {
    /*************
     * Variables *
     *************/

    Lib_AddressManager public libAddressManager;

    /***************
     * Constructor *
     ***************/

    /**
     * @param _libAddressManager Address of the Lib_AddressManager.
     */
    constructor(address _libAddressManager) {
        libAddressManager = Lib_AddressManager(_libAddressManager);
    }

    /********************
     * Public Functions *
     ********************/

    /**
     * Resolves the address associated with a given name.
     * @param _name Name to resolve an address for.
     * @return Address associated with the given name.
     */
    function resolve(string memory _name) public view returns (address) {
        return libAddressManager.getAddress(_name);
    }
}

File 5 of 6 : Lib_AddressManager.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;

/* External Imports */
import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol";

/**
 * @title Lib_AddressManager
 */
contract Lib_AddressManager is Ownable {
    /**********
     * Events *
     **********/

    event AddressSet(string indexed _name, address _newAddress, address _oldAddress);

    /*************
     * Variables *
     *************/

    mapping(bytes32 => address) private addresses;

    /********************
     * Public Functions *
     ********************/

    /**
     * Changes the address associated with a particular name.
     * @param _name String name to associate an address with.
     * @param _address Address to associate with the name.
     */
    function setAddress(string memory _name, address _address) external onlyOwner {
        bytes32 nameHash = _getNameHash(_name);
        address oldAddress = addresses[nameHash];
        addresses[nameHash] = _address;

        emit AddressSet(_name, _address, oldAddress);
    }

    /**
     * Retrieves the address associated with a given name.
     * @param _name Name to retrieve an address for.
     * @return Address associated with the given name.
     */
    function getAddress(string memory _name) external view returns (address) {
        return addresses[_getNameHash(_name)];
    }

    /**********************
     * Internal Functions *
     **********************/

    /**
     * Computes the hash of a name.
     * @param _name Name to compute a hash for.
     * @return Hash of the given name.
     */
    function _getNameHash(string memory _name) internal pure returns (bytes32) {
        return keccak256(abi.encodePacked(_name));
    }
}

File 6 of 6 : Ownable.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "../utils/Context.sol";

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

File 7 of 6 : Context.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_addressManager","type":"address"},{"internalType":"uint256","name":"_initialDiscount","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"CONFIG_OWNER_KEY","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"discount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDiscount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMinL2Gas","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"name":"isXDomainSenderAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"libAddressManager","outputs":[{"internalType":"contract Lib_AddressManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minL2Gas","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"_chainId","type":"uint256"}],"name":"processL2SeqGas","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"string","name":"_name","type":"string"}],"name":"resolve","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_allowAllXDomainSenders","type":"bool"}],"name":"setAllowAllXDomainSenders","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_discount","type":"uint256"}],"name":"setDiscount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minL2Gas","type":"uint256"}],"name":"setMinL2Gas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"bool","name":"_isWhitelisted","type":"bool"}],"name":"setWhitelistedXDomainSender","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"xDomainWL","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b506040516111bb3803806111bb83398101604081905261002f91610069565b600080546001600160a01b0319166001600160a01b03939093169290921790915560015562030d406002556004805460ff191690556100a3565b6000806040838503121561007c57600080fd5b82516001600160a01b038116811461009357600080fd5b6020939093015192949293505050565b611109806100b26000396000f3fe6080604052600436106100dd5760003560e01c8063d137874b1161007f578063e426541d11610059578063e426541d14610272578063e4af27be146102a2578063e7f1c10f146102b8578063f61caee3146102e857600080fd5b8063d137874b1461021d578063d417f18c14610232578063dabd27191461025257600080fd5b8063669fdeb5116100bb578063669fdeb51461017b5780636b6f4a9d146101d15780639955a4b3146101f5578063bf53926e1461020857600080fd5b8063299ca478146100e25780633eac510e14610139578063461a44781461015b575b600080fd5b3480156100ee57600080fd5b5060005461010f9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561014557600080fd5b50610159610154366004610c62565b610308565b005b34801561016757600080fd5b5061010f610176366004610cb3565b61045c565b34801561018757600080fd5b506101c46040518060400160405280600d81526020017f4d455449535f4d414e414745520000000000000000000000000000000000000081525081565b6040516101309190610db2565b3480156101dd57600080fd5b506101e760015481565b604051908152602001610130565b610159610203366004610e28565b610509565b34801561021457600080fd5b506002546101e7565b34801561022957600080fd5b506001546101e7565b34801561023e57600080fd5b5061015961024d366004610e54565b6106f6565b34801561025e57600080fd5b5061015961026d366004610e89565b61086a565b34801561027e57600080fd5b5061029261028d366004610ea2565b61098d565b6040519015158152602001610130565b3480156102ae57600080fd5b506101e760025481565b3480156102c457600080fd5b506102926102d3366004610ea2565b60036020526000908152604090205460ff1681565b3480156102f457600080fd5b50610159610303366004610e89565b6109cd565b6103466040518060400160405280600d81526020017f4d455449535f4d414e414745520000000000000000000000000000000000000081525061045c565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461042b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604560248201527f4d564d5f446973636f756e744f7261636c653a2046756e6374696f6e2063616e60448201527f206f6e6c792062652063616c6c656420627920746865204d455449535f4d414e60648201527f414745522e000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b600480547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b600080546040517fbf40fac100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063bf40fac1906104b3908590600401610db2565b60206040518083038186803b1580156104cb57600080fd5b505afa1580156104df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105039190610ebf565b92915050565b6105128261098d565b610578576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f73656e646572206973206e6f742077686974656c6973746564000000000000006044820152606401610422565b600061058382610af0565b6040516020016105939190610edc565b604051602081830303815290604052905060006105af8261045c565b60405190915073ffffffffffffffffffffffffffffffffffffffff82161515906105dd908490602001610f1d565b60405160208183030381529060405290610624576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104229190610db2565b5060008173ffffffffffffffffffffffffffffffffffffffff163460405160006040518083038185875af1925050503d806000811461067f576040519150601f19603f3d011682016040523d82523d6000602084013e610684565b606091505b50509050806106ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4661696c656420746f2073656e642045746865720000000000000000000000006044820152606401610422565b5050505050565b6107346040518060400160405280600d81526020017f4d455449535f4d414e414745520000000000000000000000000000000000000081525061045c565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610814576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604560248201527f4d564d5f446973636f756e744f7261636c653a2046756e6374696f6e2063616e60448201527f206f6e6c792062652063616c6c656420627920746865204d455449535f4d414e60648201527f414745522e000000000000000000000000000000000000000000000000000000608482015260a401610422565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b6108a86040518060400160405280600d81526020017f4d455449535f4d414e414745520000000000000000000000000000000000000081525061045c565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610988576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604560248201527f4d564d5f446973636f756e744f7261636c653a2046756e6374696f6e2063616e60448201527f206f6e6c792062652063616c6c656420627920746865204d455449535f4d414e60648201527f414745522e000000000000000000000000000000000000000000000000000000608482015260a401610422565b600155565b60045460009060ff1615156001148061050357505073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205460ff1690565b610a0b6040518060400160405280600d81526020017f4d455449535f4d414e414745520000000000000000000000000000000000000081525061045c565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610aeb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604560248201527f4d564d5f446973636f756e744f7261636c653a2046756e6374696f6e2063616e60448201527f206f6e6c792062652063616c6c656420627920746865204d455449535f4d414e60648201527f414745522e000000000000000000000000000000000000000000000000000000608482015260a401610422565b600255565b606081610b3057505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115610b5a5780610b4481610fb7565b9150610b539050600a83610ff0565b9150610b34565b60008167ffffffffffffffff811115610b7557610b75610c84565b6040519080825280601f01601f191660200182016040528015610b9f576020820181803683370190505b509050815b8515610c4457610bb560018261102b565b90506000610bc4600a88610ff0565b610bcf90600a611042565b610bd9908861102b565b610be490603061107f565b905060008160f81b905080848481518110610c0157610c016110a4565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610c3b600a89610ff0565b97505050610ba4565b50949350505050565b80358015158114610c5d57600080fd5b919050565b600060208284031215610c7457600080fd5b610c7d82610c4d565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060208284031215610cc557600080fd5b813567ffffffffffffffff80821115610cdd57600080fd5b818401915084601f830112610cf157600080fd5b813581811115610d0357610d03610c84565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610d4957610d49610c84565b81604052828152876020848701011115610d6257600080fd5b826020860160208301376000928101602001929092525095945050505050565b60005b83811015610d9d578181015183820152602001610d85565b83811115610dac576000848401525b50505050565b6020815260008251806020840152610dd1816040850160208701610d82565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b73ffffffffffffffffffffffffffffffffffffffff81168114610e2557600080fd5b50565b60008060408385031215610e3b57600080fd5b8235610e4681610e03565b946020939093013593505050565b60008060408385031215610e6757600080fd5b8235610e7281610e03565b9150610e8060208401610c4d565b90509250929050565b600060208284031215610e9b57600080fd5b5035919050565b600060208284031215610eb457600080fd5b8135610c7d81610e03565b600060208284031215610ed157600080fd5b8151610c7d81610e03565b60008251610eee818460208701610d82565b7f5f4d564d5f53657175656e636572000000000000000000000000000000000000920191825250600e01919050565b7f73657175656e6365722061646472657373206e6f7420617661696c61626c653a81527f2000000000000000000000000000000000000000000000000000000000000000602082015260008251610f7b816021850160208701610d82565b9190910160210192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610fe957610fe9610f88565b5060010190565b600082611026577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60008282101561103d5761103d610f88565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561107a5761107a610f88565b500290565b600060ff821660ff84168060ff0382111561109c5761109c610f88565b019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220a7ce4910fc933aaf4a932b584a7ecb10237676cbd76bd7f2f94f9c46d3b29f3864736f6c63430008090033000000000000000000000000918778e825747a892b17c66fe7d24c618262867d000000000000000000000000000000000000000000000000000000003b9aca00

Deployed Bytecode

0x6080604052600436106100dd5760003560e01c8063d137874b1161007f578063e426541d11610059578063e426541d14610272578063e4af27be146102a2578063e7f1c10f146102b8578063f61caee3146102e857600080fd5b8063d137874b1461021d578063d417f18c14610232578063dabd27191461025257600080fd5b8063669fdeb5116100bb578063669fdeb51461017b5780636b6f4a9d146101d15780639955a4b3146101f5578063bf53926e1461020857600080fd5b8063299ca478146100e25780633eac510e14610139578063461a44781461015b575b600080fd5b3480156100ee57600080fd5b5060005461010f9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561014557600080fd5b50610159610154366004610c62565b610308565b005b34801561016757600080fd5b5061010f610176366004610cb3565b61045c565b34801561018757600080fd5b506101c46040518060400160405280600d81526020017f4d455449535f4d414e414745520000000000000000000000000000000000000081525081565b6040516101309190610db2565b3480156101dd57600080fd5b506101e760015481565b604051908152602001610130565b610159610203366004610e28565b610509565b34801561021457600080fd5b506002546101e7565b34801561022957600080fd5b506001546101e7565b34801561023e57600080fd5b5061015961024d366004610e54565b6106f6565b34801561025e57600080fd5b5061015961026d366004610e89565b61086a565b34801561027e57600080fd5b5061029261028d366004610ea2565b61098d565b6040519015158152602001610130565b3480156102ae57600080fd5b506101e760025481565b3480156102c457600080fd5b506102926102d3366004610ea2565b60036020526000908152604090205460ff1681565b3480156102f457600080fd5b50610159610303366004610e89565b6109cd565b6103466040518060400160405280600d81526020017f4d455449535f4d414e414745520000000000000000000000000000000000000081525061045c565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461042b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604560248201527f4d564d5f446973636f756e744f7261636c653a2046756e6374696f6e2063616e60448201527f206f6e6c792062652063616c6c656420627920746865204d455449535f4d414e60648201527f414745522e000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b600480547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b600080546040517fbf40fac100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063bf40fac1906104b3908590600401610db2565b60206040518083038186803b1580156104cb57600080fd5b505afa1580156104df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105039190610ebf565b92915050565b6105128261098d565b610578576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f73656e646572206973206e6f742077686974656c6973746564000000000000006044820152606401610422565b600061058382610af0565b6040516020016105939190610edc565b604051602081830303815290604052905060006105af8261045c565b60405190915073ffffffffffffffffffffffffffffffffffffffff82161515906105dd908490602001610f1d565b60405160208183030381529060405290610624576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104229190610db2565b5060008173ffffffffffffffffffffffffffffffffffffffff163460405160006040518083038185875af1925050503d806000811461067f576040519150601f19603f3d011682016040523d82523d6000602084013e610684565b606091505b50509050806106ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4661696c656420746f2073656e642045746865720000000000000000000000006044820152606401610422565b5050505050565b6107346040518060400160405280600d81526020017f4d455449535f4d414e414745520000000000000000000000000000000000000081525061045c565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610814576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604560248201527f4d564d5f446973636f756e744f7261636c653a2046756e6374696f6e2063616e60448201527f206f6e6c792062652063616c6c656420627920746865204d455449535f4d414e60648201527f414745522e000000000000000000000000000000000000000000000000000000608482015260a401610422565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b6108a86040518060400160405280600d81526020017f4d455449535f4d414e414745520000000000000000000000000000000000000081525061045c565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610988576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604560248201527f4d564d5f446973636f756e744f7261636c653a2046756e6374696f6e2063616e60448201527f206f6e6c792062652063616c6c656420627920746865204d455449535f4d414e60648201527f414745522e000000000000000000000000000000000000000000000000000000608482015260a401610422565b600155565b60045460009060ff1615156001148061050357505073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205460ff1690565b610a0b6040518060400160405280600d81526020017f4d455449535f4d414e414745520000000000000000000000000000000000000081525061045c565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610aeb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604560248201527f4d564d5f446973636f756e744f7261636c653a2046756e6374696f6e2063616e60448201527f206f6e6c792062652063616c6c656420627920746865204d455449535f4d414e60648201527f414745522e000000000000000000000000000000000000000000000000000000608482015260a401610422565b600255565b606081610b3057505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115610b5a5780610b4481610fb7565b9150610b539050600a83610ff0565b9150610b34565b60008167ffffffffffffffff811115610b7557610b75610c84565b6040519080825280601f01601f191660200182016040528015610b9f576020820181803683370190505b509050815b8515610c4457610bb560018261102b565b90506000610bc4600a88610ff0565b610bcf90600a611042565b610bd9908861102b565b610be490603061107f565b905060008160f81b905080848481518110610c0157610c016110a4565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610c3b600a89610ff0565b97505050610ba4565b50949350505050565b80358015158114610c5d57600080fd5b919050565b600060208284031215610c7457600080fd5b610c7d82610c4d565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060208284031215610cc557600080fd5b813567ffffffffffffffff80821115610cdd57600080fd5b818401915084601f830112610cf157600080fd5b813581811115610d0357610d03610c84565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610d4957610d49610c84565b81604052828152876020848701011115610d6257600080fd5b826020860160208301376000928101602001929092525095945050505050565b60005b83811015610d9d578181015183820152602001610d85565b83811115610dac576000848401525b50505050565b6020815260008251806020840152610dd1816040850160208701610d82565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b73ffffffffffffffffffffffffffffffffffffffff81168114610e2557600080fd5b50565b60008060408385031215610e3b57600080fd5b8235610e4681610e03565b946020939093013593505050565b60008060408385031215610e6757600080fd5b8235610e7281610e03565b9150610e8060208401610c4d565b90509250929050565b600060208284031215610e9b57600080fd5b5035919050565b600060208284031215610eb457600080fd5b8135610c7d81610e03565b600060208284031215610ed157600080fd5b8151610c7d81610e03565b60008251610eee818460208701610d82565b7f5f4d564d5f53657175656e636572000000000000000000000000000000000000920191825250600e01919050565b7f73657175656e6365722061646472657373206e6f7420617661696c61626c653a81527f2000000000000000000000000000000000000000000000000000000000000000602082015260008251610f7b816021850160208701610d82565b9190910160210192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610fe957610fe9610f88565b5060010190565b600082611026577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60008282101561103d5761103d610f88565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561107a5761107a610f88565b500290565b600060ff821660ff84168060ff0382111561109c5761109c610f88565b019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220a7ce4910fc933aaf4a932b584a7ecb10237676cbd76bd7f2f94f9c46d3b29f3864736f6c63430008090033

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

000000000000000000000000918778e825747a892b17c66fe7d24c618262867d000000000000000000000000000000000000000000000000000000003b9aca00

-----Decoded View---------------
Arg [0] : _addressManager (address): 0x918778e825747a892b17C66fe7D24C618262867d
Arg [1] : _initialDiscount (uint256): 1000000000

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000918778e825747a892b17c66fe7d24c618262867d
Arg [1] : 000000000000000000000000000000000000000000000000000000003b9aca00


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.