{
  "address": "0x4fd947DfF05a255F78E355C23c8B2E98bf029126",
  "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": "allowAllXDomainSenders",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "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": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "l2ChainSeqGas",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "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": "uint256",
          "name": "_amount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_chainId",
          "type": "uint256"
        }
      ],
      "name": "withdrawToSeq",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "xDomainWL",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "transactionHash": "0x5e53aaddf142eac7df0f915faa192ca9bd2985cdd3a8a34705741c79bd9f7ea0",
  "receipt": {
    "to": null,
    "from": "0x25877253d48D0386Fe5655522a1b04425220Ebf7",
    "contractAddress": "0x4fd947DfF05a255F78E355C23c8B2E98bf029126",
    "transactionIndex": 170,
    "gasUsed": "1224098",
    "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
    "blockHash": "0x1f29ccfe77625d52c3e613becdc4feede0424f33cf731ae382b7677dae9cf84e",
    "transactionHash": "0x5e53aaddf142eac7df0f915faa192ca9bd2985cdd3a8a34705741c79bd9f7ea0",
    "logs": [],
    "blockNumber": 5375636,
    "cumulativeGasUsed": "18675908",
    "status": 1,
    "byzantium": true
  },
  "args": [
    "0xa66Fa1eD0f1C1ee300893B4eb5493FeAD9a7e9c3",
    "0"
  ],
  "solcInputHash": "66a048491e7e94b0d9cf9f741a129084",
  "metadata": "{\"compiler\":{\"version\":\"0.8.9+commit.e5eed63a\"},\"language\":\"Solidity\",\"output\":{\"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\":\"allowAllXDomainSenders\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"l2ChainSeqGas\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_chainId\",\"type\":\"uint256\"}],\"name\":\"withdrawToSeq\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"xDomainWL\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"resolve(string)\":{\"params\":{\"_name\":\"Name to resolve an address for.\"},\"returns\":{\"_0\":\"Address associated with the given name.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"resolve(string)\":{\"notice\":\"Resolves the address associated with a given name.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/MVM/MVM_DiscountOracle.sol\":\"MVM_DiscountOracle\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    constructor() {\\n        _setOwner(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n        _;\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions anymore. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby removing any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _setOwner(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _setOwner(newOwner);\\n    }\\n\\n    function _setOwner(address newOwner) private {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n}\\n\",\"keccak256\":\"0x6bb804a310218875e89d12c053e94a13a4607cdf7cc2052f3e52bd32a0dc50a1\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n}\\n\",\"keccak256\":\"0x90565a39ae45c80f0468dc96c7b20d0afc3055f344c8203a0c9258239f350b9f\",\"license\":\"MIT\"},\"contracts/MVM/MVM_DiscountOracle.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.9;\\n/* Contract Imports */\\n/* External Imports */\\n\\nimport { iMVM_DiscountOracle } from \\\"./iMVM_DiscountOracle.sol\\\";\\nimport { Lib_AddressResolver } from \\\"../libraries/resolver/Lib_AddressResolver.sol\\\";\\nimport { Lib_Uint } from \\\"../libraries/utils/Lib_Uint.sol\\\";\\n\\ncontract MVM_DiscountOracle is iMVM_DiscountOracle, Lib_AddressResolver{\\n    // Current l2 gas price\\n    uint256 public discount;\\n    uint256 public minL2Gas;\\n    mapping (address => bool) public xDomainWL;\\n    mapping (uint256 => uint256) public l2ChainSeqGas;\\n    bool public allowAllXDomainSenders;\\n    string constant public CONFIG_OWNER_KEY = \\\"METIS_MANAGER\\\";\\n\\n    /**********************\\n     * Function Modifiers *\\n     **********************/\\n\\n    modifier onlyManager() {\\n        require(\\n            msg.sender == resolve(CONFIG_OWNER_KEY),\\n            \\\"MVM_DiscountOracle: Function can only be called by the METIS_MANAGER.\\\"\\n        );\\n        _;\\n    }\\n\\n\\n    constructor(\\n      address _addressManager,\\n      uint256 _initialDiscount\\n    )\\n      Lib_AddressResolver(_addressManager)\\n    {\\n      discount = _initialDiscount;\\n      minL2Gas = 200_000;\\n      allowAllXDomainSenders = false;\\n    }\\n\\n\\n    function getMinL2Gas() view public override returns (uint256){\\n      return minL2Gas;\\n    }\\n\\n    function getDiscount() view public override returns (uint256){\\n      return discount;\\n    }\\n\\n    function setDiscount(\\n        uint256 _discount\\n    )\\n        public\\n        override\\n        onlyManager\\n    {\\n        discount = _discount;\\n    }\\n\\n    function setMinL2Gas(\\n        uint256 _minL2Gas\\n    )\\n        public\\n        override\\n        onlyManager\\n    {\\n        minL2Gas = _minL2Gas;\\n    }\\n\\n    function setWhitelistedXDomainSender(\\n        address _sender,\\n        bool _isWhitelisted\\n    )\\n        external\\n        override\\n        onlyManager\\n    {\\n        xDomainWL[_sender] = _isWhitelisted;\\n    }\\n\\n    function isXDomainSenderAllowed(\\n        address _sender\\n    )\\n        view\\n        override\\n        public\\n        returns (\\n            bool\\n        )\\n    {\\n        return (\\n            allowAllXDomainSenders\\n            || xDomainWL[_sender]\\n        );\\n    }\\n\\n    function setAllowAllXDomainSenders(\\n        bool _allowAllXDomainSenders\\n    )\\n        public\\n        override\\n        onlyManager\\n    {\\n        allowAllXDomainSenders = _allowAllXDomainSenders;\\n    }\\n\\n    function processL2SeqGas(address sender, uint256 _chainId)\\n    public payable override {\\n        require(isXDomainSenderAllowed(sender), \\\"sender is not whitelisted\\\");\\n        l2ChainSeqGas[_chainId] += msg.value;\\n    }\\n    \\n    function withdrawToSeq(\\n        uint256 _amount,\\n        uint256 _chainId\\n    ) \\n        public\\n        override\\n        onlyManager\\n    {\\n        require(_amount > 0, \\\"incorrect amount\\\");\\n        require(\\n            _amount <= address(this).balance,\\n            \\\"insufficient balance\\\"\\n        );\\n        require(_chainId > 0, \\\"incorrect chainId\\\");\\n        require(\\n            _amount <= l2ChainSeqGas[_chainId],\\n            \\\"this chain sequencer gas is not enough\\\"\\n        );\\n        address _to = resolve(string(abi.encodePacked(Lib_Uint.uint2str(_chainId),\\\"_MVM_Sequencer_Wrapper\\\")));\\n        require(_to != address(0) && _to != address(this), \\\"unknown sequencer address\\\");\\n        _to.call{value: _amount}(\\\"\\\");\\n        l2ChainSeqGas[_chainId] -= _amount;\\n    }\\n}\\n\",\"keccak256\":\"0xf8499144155888a399ffd177a90fcce26ecbe8a326e8ea3b1a571331560966a0\",\"license\":\"MIT\"},\"contracts/MVM/iMVM_DiscountOracle.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.9;\\n\\ninterface iMVM_DiscountOracle{\\n\\n    function setDiscount(\\n        uint256 _discount\\n    ) external;\\n    \\n    function setMinL2Gas(\\n        uint256 _minL2Gas\\n    ) external;\\n    \\n    function setWhitelistedXDomainSender(\\n        address _sender,\\n        bool _isWhitelisted\\n    ) external;\\n    \\n    function isXDomainSenderAllowed(\\n        address _sender\\n    ) view external returns(bool);\\n    \\n    function setAllowAllXDomainSenders(\\n        bool _allowAllXDomainSenders\\n    ) external;\\n    \\n    function getMinL2Gas() view external returns(uint256);\\n    function getDiscount() view external returns(uint256);\\n    function processL2SeqGas(address sender, uint256 _chainId) external payable;\\n    function withdrawToSeq(uint256 _amount, uint256 _chainId) external;\\n}\\n\",\"keccak256\":\"0xdb2a5cefb0e3d44d384621508640e4d12d23d53998b6628bd350a44d48ceb27f\",\"license\":\"MIT\"},\"contracts/libraries/resolver/Lib_AddressManager.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.9;\\n\\n/* External Imports */\\nimport { Ownable } from \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\n\\n/**\\n * @title Lib_AddressManager\\n */\\ncontract Lib_AddressManager is Ownable {\\n    /**********\\n     * Events *\\n     **********/\\n\\n    event AddressSet(string indexed _name, address _newAddress, address _oldAddress);\\n\\n    /*************\\n     * Variables *\\n     *************/\\n\\n    mapping(bytes32 => address) private addresses;\\n\\n    /********************\\n     * Public Functions *\\n     ********************/\\n\\n    /**\\n     * Changes the address associated with a particular name.\\n     * @param _name String name to associate an address with.\\n     * @param _address Address to associate with the name.\\n     */\\n    function setAddress(string memory _name, address _address) external onlyOwner {\\n        bytes32 nameHash = _getNameHash(_name);\\n        address oldAddress = addresses[nameHash];\\n        addresses[nameHash] = _address;\\n\\n        emit AddressSet(_name, _address, oldAddress);\\n    }\\n\\n    /**\\n     * Retrieves the address associated with a given name.\\n     * @param _name Name to retrieve an address for.\\n     * @return Address associated with the given name.\\n     */\\n    function getAddress(string memory _name) external view returns (address) {\\n        return addresses[_getNameHash(_name)];\\n    }\\n\\n    /**********************\\n     * Internal Functions *\\n     **********************/\\n\\n    /**\\n     * Computes the hash of a name.\\n     * @param _name Name to compute a hash for.\\n     * @return Hash of the given name.\\n     */\\n    function _getNameHash(string memory _name) internal pure returns (bytes32) {\\n        return keccak256(abi.encodePacked(_name));\\n    }\\n}\\n\",\"keccak256\":\"0xcde9b29429d512c549f7c1b8a033f161fa71c18cda08b241748663854196ae14\",\"license\":\"MIT\"},\"contracts/libraries/resolver/Lib_AddressResolver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.9;\\n\\n/* Library Imports */\\nimport { Lib_AddressManager } from \\\"./Lib_AddressManager.sol\\\";\\n\\n/**\\n * @title Lib_AddressResolver\\n */\\nabstract contract Lib_AddressResolver {\\n    /*************\\n     * Variables *\\n     *************/\\n\\n    Lib_AddressManager public libAddressManager;\\n\\n    /***************\\n     * Constructor *\\n     ***************/\\n\\n    /**\\n     * @param _libAddressManager Address of the Lib_AddressManager.\\n     */\\n    constructor(address _libAddressManager) {\\n        libAddressManager = Lib_AddressManager(_libAddressManager);\\n    }\\n\\n    /********************\\n     * Public Functions *\\n     ********************/\\n\\n    /**\\n     * Resolves the address associated with a given name.\\n     * @param _name Name to resolve an address for.\\n     * @return Address associated with the given name.\\n     */\\n    function resolve(string memory _name) public view returns (address) {\\n        return libAddressManager.getAddress(_name);\\n    }\\n}\\n\",\"keccak256\":\"0x515c4db671a28e2fe180201f6d11c0208c05f582ca3489fb6b8e81c27659bc62\",\"license\":\"MIT\"},\"contracts/libraries/utils/Lib_Uint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.9;\\n\\n/**\\n * @title Lib_Uint\\n * @author \\n */\\nlibrary Lib_Uint {\\n    /**********************\\n     * Internal Functions *\\n     **********************/\\n\\n    /**\\n     * Convert uint to string\\n     * @param _i uint value.\\n     * @return _uintAsString string momery value.\\n     */\\n    function uint2str(uint _i) internal pure returns (string memory _uintAsString) {\\n        if (_i == 0) {\\n            return \\\"0\\\";\\n        }\\n        uint j = _i;\\n        uint len;\\n        while (j != 0) {\\n            len++;\\n            j /= 10;\\n        }\\n        bytes memory bstr = new bytes(len);\\n        uint k = len;\\n        while (_i != 0) {\\n            k = k-1;\\n            uint8 temp = (48 + uint8(_i - _i / 10 * 10));\\n            bytes1 b1 = bytes1(temp);\\n            bstr[k] = b1;\\n            _i /= 10;\\n        }\\n        return string(bstr);\\n    }\\n}\\n\",\"keccak256\":\"0x56daff25391c1dff4a4cfdfadc490c982ff0b430b78a512df2d7666a139dde02\",\"license\":\"MIT\"}},\"version\":1}",
  "bytecode": "0x608060405234801561001057600080fd5b5060405161151b38038061151b83398101604081905261002f91610069565b600080546001600160a01b0319166001600160a01b03939093169290921790915560015562030d406002556005805460ff191690556100a3565b6000806040838503121561007c57600080fd5b82516001600160a01b038116811461009357600080fd5b6020939093015192949293505050565b611469806100b26000396000f3fe60806040526004361061010e5760003560e01c80639e4fbd81116100a5578063dabd271911610074578063e4af27be11610059578063e4af27be1461033a578063e7f1c10f14610350578063f61caee31461038057600080fd5b8063dabd2719146102fa578063e426541d1461031a57600080fd5b80639e4fbd8114610290578063bf53926e146102b0578063d137874b146102c5578063d417f18c146102da57600080fd5b806355423b24116100e157806355423b24146101e7578063669fdeb5146102115780636b6f4a9d146102675780639955a4b31461027d57600080fd5b8063299ca478146101135780633eac510e1461016a578063461a44781461018c5780634c83a7b1146101ac575b600080fd5b34801561011f57600080fd5b506000546101409073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561017657600080fd5b5061018a610185366004610ff3565b6103a0565b005b34801561019857600080fd5b506101406101a7366004611044565b6104f4565b3480156101b857600080fd5b506101d96101c7366004611113565b60046020526000908152604090205481565b604051908152602001610161565b3480156101f357600080fd5b506005546102019060ff1681565b6040519015158152602001610161565b34801561021d57600080fd5b5061025a6040518060400160405280600d81526020017f4d455449535f4d414e414745520000000000000000000000000000000000000081525081565b604051610161919061115c565b34801561027357600080fd5b506101d960015481565b61018a61028b3660046111d2565b6105a1565b34801561029c57600080fd5b5061018a6102ab3660046111fe565b610637565b3480156102bc57600080fd5b506002546101d9565b3480156102d157600080fd5b506001546101d9565b3480156102e657600080fd5b5061018a6102f5366004611220565b610a8c565b34801561030657600080fd5b5061018a610315366004611113565b610c00565b34801561032657600080fd5b50610201610335366004611255565b610d23565b34801561034657600080fd5b506101d960025481565b34801561035c57600080fd5b5061020161036b366004611255565b60036020526000908152604090205460ff1681565b34801561038c57600080fd5b5061018a61039b366004611113565b610d5e565b6103de6040518060400160405280600d81526020017f4d455449535f4d414e41474552000000000000000000000000000000000000008152506104f4565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604560248201527f4d564d5f446973636f756e744f7261636c653a2046756e6374696f6e2063616e60448201527f206f6e6c792062652063616c6c656420627920746865204d455449535f4d414e60648201527f414745522e000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b600080546040517fbf40fac100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063bf40fac19061054b90859060040161115c565b60206040518083038186803b15801561056357600080fd5b505afa158015610577573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059b9190611272565b92915050565b6105aa82610d23565b610610576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f73656e646572206973206e6f742077686974656c69737465640000000000000060448201526064016104ba565b6000818152600460205260408120805434929061062e9084906112be565b90915550505050565b6106756040518060400160405280600d81526020017f4d455449535f4d414e41474552000000000000000000000000000000000000008152506104f4565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604560248201527f4d564d5f446973636f756e744f7261636c653a2046756e6374696f6e2063616e60448201527f206f6e6c792062652063616c6c656420627920746865204d455449535f4d414e60648201527f414745522e000000000000000000000000000000000000000000000000000000608482015260a4016104ba565b600082116107bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f696e636f727265637420616d6f756e740000000000000000000000000000000060448201526064016104ba565b47821115610829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e73756666696369656e742062616c616e636500000000000000000000000060448201526064016104ba565b60008111610893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f696e636f727265637420636861696e496400000000000000000000000000000060448201526064016104ba565b600081815260046020526040902054821115610931576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f7468697320636861696e2073657175656e63657220676173206973206e6f742060448201527f656e6f756768000000000000000000000000000000000000000000000000000060648201526084016104ba565b600061096361093f83610e81565b60405160200161094f91906112d6565b6040516020818303038152906040526104f4565b905073ffffffffffffffffffffffffffffffffffffffff8116158015906109a0575073ffffffffffffffffffffffffffffffffffffffff81163014155b610a06576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f756e6b6e6f776e2073657175656e63657220616464726573730000000000000060448201526064016104ba565b60405173ffffffffffffffffffffffffffffffffffffffff8216908490600081818185875af1925050503d8060008114610a5c576040519150601f19603f3d011682016040523d82523d6000602084013e610a61565b606091505b50505060008281526004602052604081208054859290610a82908490611317565b9091555050505050565b610aca6040518060400160405280600d81526020017f4d455449535f4d414e41474552000000000000000000000000000000000000008152506104f4565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610baa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604560248201527f4d564d5f446973636f756e744f7261636c653a2046756e6374696f6e2063616e60448201527f206f6e6c792062652063616c6c656420627920746865204d455449535f4d414e60648201527f414745522e000000000000000000000000000000000000000000000000000000608482015260a4016104ba565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b610c3e6040518060400160405280600d81526020017f4d455449535f4d414e41474552000000000000000000000000000000000000008152506104f4565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604560248201527f4d564d5f446973636f756e744f7261636c653a2046756e6374696f6e2063616e60448201527f206f6e6c792062652063616c6c656420627920746865204d455449535f4d414e60648201527f414745522e000000000000000000000000000000000000000000000000000000608482015260a4016104ba565b600155565b60055460009060ff168061059b57505073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205460ff1690565b610d9c6040518060400160405280600d81526020017f4d455449535f4d414e41474552000000000000000000000000000000000000008152506104f4565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e7c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604560248201527f4d564d5f446973636f756e744f7261636c653a2046756e6374696f6e2063616e60448201527f206f6e6c792062652063616c6c656420627920746865204d455449535f4d414e60648201527f414745522e000000000000000000000000000000000000000000000000000000608482015260a4016104ba565b600255565b606081610ec157505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115610eeb5780610ed58161132e565b9150610ee49050600a83611367565b9150610ec5565b60008167ffffffffffffffff811115610f0657610f06611015565b6040519080825280601f01601f191660200182016040528015610f30576020820181803683370190505b509050815b8515610fd557610f46600182611317565b90506000610f55600a88611367565b610f6090600a6113a2565b610f6a9088611317565b610f759060306113df565b905060008160f81b905080848481518110610f9257610f92611404565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610fcc600a89611367565b97505050610f35565b50949350505050565b80358015158114610fee57600080fd5b919050565b60006020828403121561100557600080fd5b61100e82610fde565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561105657600080fd5b813567ffffffffffffffff8082111561106e57600080fd5b818401915084601f83011261108257600080fd5b81358181111561109457611094611015565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156110da576110da611015565b816040528281528760208487010111156110f357600080fd5b826020860160208301376000928101602001929092525095945050505050565b60006020828403121561112557600080fd5b5035919050565b60005b8381101561114757818101518382015260200161112f565b83811115611156576000848401525b50505050565b602081526000825180602084015261117b81604085016020870161112c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b73ffffffffffffffffffffffffffffffffffffffff811681146111cf57600080fd5b50565b600080604083850312156111e557600080fd5b82356111f0816111ad565b946020939093013593505050565b6000806040838503121561121157600080fd5b50508035926020909101359150565b6000806040838503121561123357600080fd5b823561123e816111ad565b915061124c60208401610fde565b90509250929050565b60006020828403121561126757600080fd5b813561100e816111ad565b60006020828403121561128457600080fd5b815161100e816111ad565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082198211156112d1576112d161128f565b500190565b600082516112e881846020870161112c565b7f5f4d564d5f53657175656e6365725f5772617070657200000000000000000000920191825250601601919050565b6000828210156113295761132961128f565b500390565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156113605761136061128f565b5060010190565b60008261139d577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156113da576113da61128f565b500290565b600060ff821660ff84168060ff038211156113fc576113fc61128f565b019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea26469706673582212201e37b297342d52b7c038bfbc037c21183ab7115a68dab65551b013be44879e9164736f6c63430008090033",
  "deployedBytecode": "0x60806040526004361061010e5760003560e01c80639e4fbd81116100a5578063dabd271911610074578063e4af27be11610059578063e4af27be1461033a578063e7f1c10f14610350578063f61caee31461038057600080fd5b8063dabd2719146102fa578063e426541d1461031a57600080fd5b80639e4fbd8114610290578063bf53926e146102b0578063d137874b146102c5578063d417f18c146102da57600080fd5b806355423b24116100e157806355423b24146101e7578063669fdeb5146102115780636b6f4a9d146102675780639955a4b31461027d57600080fd5b8063299ca478146101135780633eac510e1461016a578063461a44781461018c5780634c83a7b1146101ac575b600080fd5b34801561011f57600080fd5b506000546101409073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561017657600080fd5b5061018a610185366004610ff3565b6103a0565b005b34801561019857600080fd5b506101406101a7366004611044565b6104f4565b3480156101b857600080fd5b506101d96101c7366004611113565b60046020526000908152604090205481565b604051908152602001610161565b3480156101f357600080fd5b506005546102019060ff1681565b6040519015158152602001610161565b34801561021d57600080fd5b5061025a6040518060400160405280600d81526020017f4d455449535f4d414e414745520000000000000000000000000000000000000081525081565b604051610161919061115c565b34801561027357600080fd5b506101d960015481565b61018a61028b3660046111d2565b6105a1565b34801561029c57600080fd5b5061018a6102ab3660046111fe565b610637565b3480156102bc57600080fd5b506002546101d9565b3480156102d157600080fd5b506001546101d9565b3480156102e657600080fd5b5061018a6102f5366004611220565b610a8c565b34801561030657600080fd5b5061018a610315366004611113565b610c00565b34801561032657600080fd5b50610201610335366004611255565b610d23565b34801561034657600080fd5b506101d960025481565b34801561035c57600080fd5b5061020161036b366004611255565b60036020526000908152604090205460ff1681565b34801561038c57600080fd5b5061018a61039b366004611113565b610d5e565b6103de6040518060400160405280600d81526020017f4d455449535f4d414e41474552000000000000000000000000000000000000008152506104f4565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604560248201527f4d564d5f446973636f756e744f7261636c653a2046756e6374696f6e2063616e60448201527f206f6e6c792062652063616c6c656420627920746865204d455449535f4d414e60648201527f414745522e000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b600080546040517fbf40fac100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063bf40fac19061054b90859060040161115c565b60206040518083038186803b15801561056357600080fd5b505afa158015610577573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059b9190611272565b92915050565b6105aa82610d23565b610610576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f73656e646572206973206e6f742077686974656c69737465640000000000000060448201526064016104ba565b6000818152600460205260408120805434929061062e9084906112be565b90915550505050565b6106756040518060400160405280600d81526020017f4d455449535f4d414e41474552000000000000000000000000000000000000008152506104f4565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604560248201527f4d564d5f446973636f756e744f7261636c653a2046756e6374696f6e2063616e60448201527f206f6e6c792062652063616c6c656420627920746865204d455449535f4d414e60648201527f414745522e000000000000000000000000000000000000000000000000000000608482015260a4016104ba565b600082116107bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f696e636f727265637420616d6f756e740000000000000000000000000000000060448201526064016104ba565b47821115610829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e73756666696369656e742062616c616e636500000000000000000000000060448201526064016104ba565b60008111610893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f696e636f727265637420636861696e496400000000000000000000000000000060448201526064016104ba565b600081815260046020526040902054821115610931576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f7468697320636861696e2073657175656e63657220676173206973206e6f742060448201527f656e6f756768000000000000000000000000000000000000000000000000000060648201526084016104ba565b600061096361093f83610e81565b60405160200161094f91906112d6565b6040516020818303038152906040526104f4565b905073ffffffffffffffffffffffffffffffffffffffff8116158015906109a0575073ffffffffffffffffffffffffffffffffffffffff81163014155b610a06576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f756e6b6e6f776e2073657175656e63657220616464726573730000000000000060448201526064016104ba565b60405173ffffffffffffffffffffffffffffffffffffffff8216908490600081818185875af1925050503d8060008114610a5c576040519150601f19603f3d011682016040523d82523d6000602084013e610a61565b606091505b50505060008281526004602052604081208054859290610a82908490611317565b9091555050505050565b610aca6040518060400160405280600d81526020017f4d455449535f4d414e41474552000000000000000000000000000000000000008152506104f4565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610baa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604560248201527f4d564d5f446973636f756e744f7261636c653a2046756e6374696f6e2063616e60448201527f206f6e6c792062652063616c6c656420627920746865204d455449535f4d414e60648201527f414745522e000000000000000000000000000000000000000000000000000000608482015260a4016104ba565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b610c3e6040518060400160405280600d81526020017f4d455449535f4d414e41474552000000000000000000000000000000000000008152506104f4565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604560248201527f4d564d5f446973636f756e744f7261636c653a2046756e6374696f6e2063616e60448201527f206f6e6c792062652063616c6c656420627920746865204d455449535f4d414e60648201527f414745522e000000000000000000000000000000000000000000000000000000608482015260a4016104ba565b600155565b60055460009060ff168061059b57505073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205460ff1690565b610d9c6040518060400160405280600d81526020017f4d455449535f4d414e41474552000000000000000000000000000000000000008152506104f4565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e7c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604560248201527f4d564d5f446973636f756e744f7261636c653a2046756e6374696f6e2063616e60448201527f206f6e6c792062652063616c6c656420627920746865204d455449535f4d414e60648201527f414745522e000000000000000000000000000000000000000000000000000000608482015260a4016104ba565b600255565b606081610ec157505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115610eeb5780610ed58161132e565b9150610ee49050600a83611367565b9150610ec5565b60008167ffffffffffffffff811115610f0657610f06611015565b6040519080825280601f01601f191660200182016040528015610f30576020820181803683370190505b509050815b8515610fd557610f46600182611317565b90506000610f55600a88611367565b610f6090600a6113a2565b610f6a9088611317565b610f759060306113df565b905060008160f81b905080848481518110610f9257610f92611404565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610fcc600a89611367565b97505050610f35565b50949350505050565b80358015158114610fee57600080fd5b919050565b60006020828403121561100557600080fd5b61100e82610fde565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561105657600080fd5b813567ffffffffffffffff8082111561106e57600080fd5b818401915084601f83011261108257600080fd5b81358181111561109457611094611015565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156110da576110da611015565b816040528281528760208487010111156110f357600080fd5b826020860160208301376000928101602001929092525095945050505050565b60006020828403121561112557600080fd5b5035919050565b60005b8381101561114757818101518382015260200161112f565b83811115611156576000848401525b50505050565b602081526000825180602084015261117b81604085016020870161112c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b73ffffffffffffffffffffffffffffffffffffffff811681146111cf57600080fd5b50565b600080604083850312156111e557600080fd5b82356111f0816111ad565b946020939093013593505050565b6000806040838503121561121157600080fd5b50508035926020909101359150565b6000806040838503121561123357600080fd5b823561123e816111ad565b915061124c60208401610fde565b90509250929050565b60006020828403121561126757600080fd5b813561100e816111ad565b60006020828403121561128457600080fd5b815161100e816111ad565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082198211156112d1576112d161128f565b500190565b600082516112e881846020870161112c565b7f5f4d564d5f53657175656e6365725f5772617070657200000000000000000000920191825250601601919050565b6000828210156113295761132961128f565b500390565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156113605761136061128f565b5060010190565b60008261139d577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156113da576113da61128f565b500290565b600060ff821660ff84168060ff038211156113fc576113fc61128f565b019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea26469706673582212201e37b297342d52b7c038bfbc037c21183ab7115a68dab65551b013be44879e9164736f6c63430008090033",
  "devdoc": {
    "kind": "dev",
    "methods": {
      "resolve(string)": {
        "params": {
          "_name": "Name to resolve an address for."
        },
        "returns": {
          "_0": "Address associated with the given name."
        }
      }
    },
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {
      "resolve(string)": {
        "notice": "Resolves the address associated with a given name."
      }
    },
    "version": 1
  },
  "storageLayout": {
    "storage": [
      {
        "astId": 15492,
        "contract": "contracts/MVM/MVM_DiscountOracle.sol:MVM_DiscountOracle",
        "label": "libAddressManager",
        "offset": 0,
        "slot": "0",
        "type": "t_contract(Lib_AddressManager)15484"
      },
      {
        "astId": 11954,
        "contract": "contracts/MVM/MVM_DiscountOracle.sol:MVM_DiscountOracle",
        "label": "discount",
        "offset": 0,
        "slot": "1",
        "type": "t_uint256"
      },
      {
        "astId": 11956,
        "contract": "contracts/MVM/MVM_DiscountOracle.sol:MVM_DiscountOracle",
        "label": "minL2Gas",
        "offset": 0,
        "slot": "2",
        "type": "t_uint256"
      },
      {
        "astId": 11960,
        "contract": "contracts/MVM/MVM_DiscountOracle.sol:MVM_DiscountOracle",
        "label": "xDomainWL",
        "offset": 0,
        "slot": "3",
        "type": "t_mapping(t_address,t_bool)"
      },
      {
        "astId": 11964,
        "contract": "contracts/MVM/MVM_DiscountOracle.sol:MVM_DiscountOracle",
        "label": "l2ChainSeqGas",
        "offset": 0,
        "slot": "4",
        "type": "t_mapping(t_uint256,t_uint256)"
      },
      {
        "astId": 11966,
        "contract": "contracts/MVM/MVM_DiscountOracle.sol:MVM_DiscountOracle",
        "label": "allowAllXDomainSenders",
        "offset": 0,
        "slot": "5",
        "type": "t_bool"
      }
    ],
    "types": {
      "t_address": {
        "encoding": "inplace",
        "label": "address",
        "numberOfBytes": "20"
      },
      "t_bool": {
        "encoding": "inplace",
        "label": "bool",
        "numberOfBytes": "1"
      },
      "t_contract(Lib_AddressManager)15484": {
        "encoding": "inplace",
        "label": "contract Lib_AddressManager",
        "numberOfBytes": "20"
      },
      "t_mapping(t_address,t_bool)": {
        "encoding": "mapping",
        "key": "t_address",
        "label": "mapping(address => bool)",
        "numberOfBytes": "32",
        "value": "t_bool"
      },
      "t_mapping(t_uint256,t_uint256)": {
        "encoding": "mapping",
        "key": "t_uint256",
        "label": "mapping(uint256 => uint256)",
        "numberOfBytes": "32",
        "value": "t_uint256"
      },
      "t_uint256": {
        "encoding": "inplace",
        "label": "uint256",
        "numberOfBytes": "32"
      }
    }
  }
}