{
  "address": "0xE1DB0B11a530C0927932A0459d350a1135cE8A9e",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_libAddressManager",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_who",
          "type": "address"
        }
      ],
      "name": "isCollateralized",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_chainId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_who",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_prop",
          "type": "address"
        }
      ],
      "name": "isCollateralizedByChainId",
      "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": [
        {
          "internalType": "string",
          "name": "_name",
          "type": "string"
        }
      ],
      "name": "resolve",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "transactionHash": "0xee493913398248e5a1a6db6966489769cde55757638fc4a85f21d2d14a2618b6",
  "receipt": {
    "to": null,
    "from": "0x012347D9D1cC9df8d53289d43d84b5bCdED7F480",
    "contractAddress": "0xE1DB0B11a530C0927932A0459d350a1135cE8A9e",
    "transactionIndex": 0,
    "gasUsed": "561241",
    "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
    "blockHash": "0x63c0765899cdfe940d952a3c4f67c067d61cba88137d592731e5f4a21b0eec7a",
    "transactionHash": "0xee493913398248e5a1a6db6966489769cde55757638fc4a85f21d2d14a2618b6",
    "logs": [],
    "blockNumber": 97,
    "cumulativeGasUsed": "561241",
    "status": 1,
    "byzantium": true
  },
  "args": [
    "0xE9f3269c55Da2ebB729574FD2bbE3Bb23375CeF4"
  ],
  "numDeployments": 1,
  "solcInputHash": "452b4108adbe7ec4e50c9cf8a60feb9d",
  "metadata": "{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_libAddressManager\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_who\",\"type\":\"address\"}],\"name\":\"isCollateralized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_prop\",\"type\":\"address\"}],\"name\":\"isCollateralizedByChainId\",\"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\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract is, for now, a stub of the \\\"real\\\" BondManager that does nothing but allow the \\\"OVM_Proposer\\\" to submit state root batches. Runtime target: EVM\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_libAddressManager\":\"Address of the Address Manager.\"}},\"isCollateralized(address)\":{\"params\":{\"_who\":\"Address to check.\"},\"returns\":{\"_0\":\"true if the address is properly collateralized, false otherwise.\"}},\"resolve(string)\":{\"params\":{\"_name\":\"Name to resolve an address for.\"},\"returns\":{\"_0\":\"Address associated with the given name.\"}}},\"title\":\"BondManager\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"isCollateralized(address)\":{\"notice\":\"Checks whether a given address is properly collateralized and can perform actions within the system.\"},\"resolve(string)\":{\"notice\":\"Resolves the address associated with a given name.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/L1/verification/BondManager.sol\":\"BondManager\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\\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        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\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 the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\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        _transferOwnership(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        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n}\\n\",\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\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\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"},\"contracts/L1/verification/BondManager.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.9;\\n\\n/* Interface Imports */\\nimport { IBondManager } from \\\"./IBondManager.sol\\\";\\n\\n/* Contract Imports */\\nimport { Lib_AddressResolver } from \\\"../../libraries/resolver/Lib_AddressResolver.sol\\\";\\nimport { Lib_Uint } from \\\"../../libraries/utils/Lib_Uint.sol\\\";\\n\\n/**\\n * @title BondManager\\n * @dev This contract is, for now, a stub of the \\\"real\\\" BondManager that does nothing but\\n * allow the \\\"OVM_Proposer\\\" to submit state root batches.\\n *\\n * Runtime target: EVM\\n */\\ncontract BondManager is IBondManager, Lib_AddressResolver {\\n    /**\\n     * @param _libAddressManager Address of the Address Manager.\\n     */\\n    constructor(address _libAddressManager) Lib_AddressResolver(_libAddressManager) {}\\n\\n    /**\\n     * Checks whether a given address is properly collateralized and can perform actions within\\n     * the system.\\n     * @param _who Address to check.\\n     * @return true if the address is properly collateralized, false otherwise.\\n     */\\n    function isCollateralized(address _who) public view returns (bool) {\\n        // Only authenticate sequencer to submit state root batches.\\n        return _who == resolve(\\\"OVM_Proposer\\\");\\n    }\\n\\n    function isCollateralizedByChainId(\\n        uint256 _chainId,\\n        address _who,\\n        address _prop\\n    ) public view override returns (bool) {\\n        require(_who == _prop, \\\"sender must the proposer!\\\");\\n        require(\\n            _prop ==\\n                resolve(string(abi.encodePacked(Lib_Uint.uint2str(_chainId), \\\"_MVM_Proposer\\\"))),\\n            \\\"Proposer does not match this chain.\\\"\\n        );\\n        return true;\\n        //return bonds[_who].state == State.COLLATERALIZED;\\n    }\\n\\n    // function registerSequencerByChainId(\\n    //    uint256 _chainId,\\n    //    address _sequencer,\\n    //    address _proposer\\n    //) public {\\n    //}\\n}\\n\",\"keccak256\":\"0x2ab466cbe4ddf546f0db2ccdeee5115e4f2b49c49303dbca856e808fe5631870\",\"license\":\"MIT\"},\"contracts/L1/verification/IBondManager.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.9;\\n\\n/**\\n * @title IBondManager\\n */\\ninterface IBondManager {\\n    /********************\\n     * Public Functions *\\n     ********************/\\n\\n    function isCollateralized(address _who) external view returns (bool);\\n\\n    function isCollateralizedByChainId(\\n        uint256 _chainId,\\n        address _who,\\n        address _prop\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x666cc1401df59fb833615dbe53193fe664ddbb39ec0e5c5812b009fe38c29c08\",\"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(uint256 _i) internal pure returns (string memory _uintAsString) {\\n        if (_i == 0) {\\n            return \\\"0\\\";\\n        }\\n        uint256 j = _i;\\n        uint256 len;\\n        while (j != 0) {\\n            len++;\\n            j /= 10;\\n        }\\n        bytes memory bstr = new bytes(len);\\n        uint256 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\":\"0x00408d812fdd202f5693796c9b67821b5c7114aca93484c88cdc63b0caa3c288\",\"license\":\"MIT\"}},\"version\":1}",
  "bytecode": "0x608060405234801561001057600080fd5b5060405161096238038061096283398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6108cf806100936000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806302ad4d2a14610051578063299ca47814610079578063461a4478146100be578063f3b96f1c146100d1575b600080fd5b61006461005f36600461050c565b6100e4565b60405190151581526020015b60405180910390f35b6000546100999073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610070565b6100996100cc36600461055f565b610159565b6100646100df36600461062e565b6101f7565b60006101246040518060400160405280600c81526020017f4f564d5f50726f706f7365720000000000000000000000000000000000000000815250610159565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b600080546040517fbf40fac100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063bf40fac1906101b09085906004016106a0565b602060405180830381865afa1580156101cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101f191906106f1565b92915050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610293576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f73656e646572206d757374207468652070726f706f736572210000000000000060448201526064015b60405180910390fd5b6102c361029f85610387565b6040516020016102af919061070e565b604051602081830303815290604052610159565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461037d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f50726f706f73657220646f6573206e6f74206d6174636820746869732063686160448201527f696e2e0000000000000000000000000000000000000000000000000000000000606482015260840161028a565b5060019392505050565b6060816000036103ca57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b81156103f457806103de8161077e565b91506103ed9050600a836107b6565b91506103ce565b60008167ffffffffffffffff81111561040f5761040f610530565b6040519080825280601f01601f191660200182016040528015610439576020820181803683370190505b509050815b85156104de5761044f6001826107f1565b9050600061045e600a886107b6565b61046990600a610808565b61047390886107f1565b61047e906030610845565b905060008160f81b90508084848151811061049b5761049b61086a565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506104d5600a896107b6565b9750505061043e565b50949350505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461050957600080fd5b50565b60006020828403121561051e57600080fd5b8135610529816104e7565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561057157600080fd5b813567ffffffffffffffff8082111561058957600080fd5b818401915084601f83011261059d57600080fd5b8135818111156105af576105af610530565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156105f5576105f5610530565b8160405282815287602084870101111561060e57600080fd5b826020860160208301376000928101602001929092525095945050505050565b60008060006060848603121561064357600080fd5b833592506020840135610655816104e7565b91506040840135610665816104e7565b809150509250925092565b60005b8381101561068b578181015183820152602001610673565b8381111561069a576000848401525b50505050565b60208152600082518060208401526106bf816040850160208701610670565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60006020828403121561070357600080fd5b8151610529816104e7565b60008251610720818460208701610670565b7f5f4d564d5f50726f706f73657200000000000000000000000000000000000000920191825250600d01919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036107af576107af61074f565b5060010190565b6000826107ec577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000828210156108035761080361074f565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156108405761084061074f565b500290565b600060ff821660ff84168060ff038211156108625761086261074f565b019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea264697066735822122060a65a34ea897b045f211a572b2227ab29e5237093686e93eeceec594a0966f964736f6c634300080f0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806302ad4d2a14610051578063299ca47814610079578063461a4478146100be578063f3b96f1c146100d1575b600080fd5b61006461005f36600461050c565b6100e4565b60405190151581526020015b60405180910390f35b6000546100999073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610070565b6100996100cc36600461055f565b610159565b6100646100df36600461062e565b6101f7565b60006101246040518060400160405280600c81526020017f4f564d5f50726f706f7365720000000000000000000000000000000000000000815250610159565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b600080546040517fbf40fac100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063bf40fac1906101b09085906004016106a0565b602060405180830381865afa1580156101cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101f191906106f1565b92915050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610293576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f73656e646572206d757374207468652070726f706f736572210000000000000060448201526064015b60405180910390fd5b6102c361029f85610387565b6040516020016102af919061070e565b604051602081830303815290604052610159565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461037d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f50726f706f73657220646f6573206e6f74206d6174636820746869732063686160448201527f696e2e0000000000000000000000000000000000000000000000000000000000606482015260840161028a565b5060019392505050565b6060816000036103ca57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b81156103f457806103de8161077e565b91506103ed9050600a836107b6565b91506103ce565b60008167ffffffffffffffff81111561040f5761040f610530565b6040519080825280601f01601f191660200182016040528015610439576020820181803683370190505b509050815b85156104de5761044f6001826107f1565b9050600061045e600a886107b6565b61046990600a610808565b61047390886107f1565b61047e906030610845565b905060008160f81b90508084848151811061049b5761049b61086a565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506104d5600a896107b6565b9750505061043e565b50949350505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461050957600080fd5b50565b60006020828403121561051e57600080fd5b8135610529816104e7565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561057157600080fd5b813567ffffffffffffffff8082111561058957600080fd5b818401915084601f83011261059d57600080fd5b8135818111156105af576105af610530565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156105f5576105f5610530565b8160405282815287602084870101111561060e57600080fd5b826020860160208301376000928101602001929092525095945050505050565b60008060006060848603121561064357600080fd5b833592506020840135610655816104e7565b91506040840135610665816104e7565b809150509250925092565b60005b8381101561068b578181015183820152602001610673565b8381111561069a576000848401525b50505050565b60208152600082518060208401526106bf816040850160208701610670565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60006020828403121561070357600080fd5b8151610529816104e7565b60008251610720818460208701610670565b7f5f4d564d5f50726f706f73657200000000000000000000000000000000000000920191825250600d01919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036107af576107af61074f565b5060010190565b6000826107ec577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000828210156108035761080361074f565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156108405761084061074f565b500290565b600060ff821660ff84168060ff038211156108625761086261074f565b019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea264697066735822122060a65a34ea897b045f211a572b2227ab29e5237093686e93eeceec594a0966f964736f6c634300080f0033",
  "devdoc": {
    "details": "This contract is, for now, a stub of the \"real\" BondManager that does nothing but allow the \"OVM_Proposer\" to submit state root batches. Runtime target: EVM",
    "kind": "dev",
    "methods": {
      "constructor": {
        "params": {
          "_libAddressManager": "Address of the Address Manager."
        }
      },
      "isCollateralized(address)": {
        "params": {
          "_who": "Address to check."
        },
        "returns": {
          "_0": "true if the address is properly collateralized, false otherwise."
        }
      },
      "resolve(string)": {
        "params": {
          "_name": "Name to resolve an address for."
        },
        "returns": {
          "_0": "Address associated with the given name."
        }
      }
    },
    "title": "BondManager",
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {
      "isCollateralized(address)": {
        "notice": "Checks whether a given address is properly collateralized and can perform actions within the system."
      },
      "resolve(string)": {
        "notice": "Resolves the address associated with a given name."
      }
    },
    "version": 1
  },
  "storageLayout": {
    "storage": [
      {
        "astId": 33414,
        "contract": "contracts/L1/verification/BondManager.sol:BondManager",
        "label": "libAddressManager",
        "offset": 0,
        "slot": "0",
        "type": "t_contract(Lib_AddressManager)33406"
      }
    ],
    "types": {
      "t_contract(Lib_AddressManager)33406": {
        "encoding": "inplace",
        "label": "contract Lib_AddressManager",
        "numberOfBytes": "20"
      }
    }
  }
}