{
  "address": "0x52ec2F3d7C5977A8E558C8D9C6000B615098E8fC",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_minDepositAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_maxDepositAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_maxBalance",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        }
      ],
      "name": "BalanceWithdrawn",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "depositId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "emitter",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "EtherReceived",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "previousBalance",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newBalance",
          "type": "uint256"
        }
      ],
      "name": "MaxBalanceSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "previousAmount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newAmount",
          "type": "uint256"
        }
      ],
      "name": "MaxDepositAmountSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "previousAmount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newAmount",
          "type": "uint256"
        }
      ],
      "name": "MinDepositAmountSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "maxBalance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "maxDepositAmount",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "minDepositAmount",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_maxDepositAmount",
          "type": "uint256"
        }
      ],
      "name": "setMaxAmount",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_maxBalance",
          "type": "uint256"
        }
      ],
      "name": "setMaxBalance",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_minDepositAmount",
          "type": "uint256"
        }
      ],
      "name": "setMinAmount",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalDeposits",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "withdrawBalance",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "transactionHash": "0xb63a08a31db0fb45bf48836d0941dd30b094870905f838ee3c3ff237374edeaf",
  "receipt": {
    "to": null,
    "from": "0xe07E50264CD86EC96a22C930f3581EFb46bA3A34",
    "contractAddress": "0x52ec2F3d7C5977A8E558C8D9C6000B615098E8fC",
    "transactionIndex": 284,
    "gasUsed": "690034",
    "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000800200000000000000200000000004000400000000000000000000000000000000040000000000000000000000000000000000000040000000000000000000000000000000000020000000000000000000000000000000008000200000001000000400000000020000000000000000020000002000000000000000000000000008000000000000000000000000000020000",
    "blockHash": "0xec5b8ac652db0c4eabeb18672080e7810982020558a38de0169b44a9efeffd9b",
    "transactionHash": "0xb63a08a31db0fb45bf48836d0941dd30b094870905f838ee3c3ff237374edeaf",
    "logs": [
      {
        "transactionIndex": 284,
        "blockNumber": 14595007,
        "transactionHash": "0xb63a08a31db0fb45bf48836d0941dd30b094870905f838ee3c3ff237374edeaf",
        "address": "0x52ec2F3d7C5977A8E558C8D9C6000B615098E8fC",
        "topics": [
          "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0",
          "0x0000000000000000000000000000000000000000000000000000000000000000",
          "0x000000000000000000000000e07e50264cd86ec96a22c930f3581efb46ba3a34"
        ],
        "data": "0x",
        "logIndex": 306,
        "blockHash": "0xec5b8ac652db0c4eabeb18672080e7810982020558a38de0169b44a9efeffd9b"
      },
      {
        "transactionIndex": 284,
        "blockNumber": 14595007,
        "transactionHash": "0xb63a08a31db0fb45bf48836d0941dd30b094870905f838ee3c3ff237374edeaf",
        "address": "0x52ec2F3d7C5977A8E558C8D9C6000B615098E8fC",
        "topics": [
          "0x65779d3ca560e9bdec52d08ed75431a84df87cb7796f0e51965f6efc0f556c0f"
        ],
        "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005af3107a4000",
        "logIndex": 307,
        "blockHash": "0xec5b8ac652db0c4eabeb18672080e7810982020558a38de0169b44a9efeffd9b"
      },
      {
        "transactionIndex": 284,
        "blockNumber": 14595007,
        "transactionHash": "0xb63a08a31db0fb45bf48836d0941dd30b094870905f838ee3c3ff237374edeaf",
        "address": "0x52ec2F3d7C5977A8E558C8D9C6000B615098E8fC",
        "topics": [
          "0xb1e6cc560df1786578fd4d1fe6e046f089a0c3be401e999b51a5112437911797"
        ],
        "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000",
        "logIndex": 308,
        "blockHash": "0xec5b8ac652db0c4eabeb18672080e7810982020558a38de0169b44a9efeffd9b"
      },
      {
        "transactionIndex": 284,
        "blockNumber": 14595007,
        "transactionHash": "0xb63a08a31db0fb45bf48836d0941dd30b094870905f838ee3c3ff237374edeaf",
        "address": "0x52ec2F3d7C5977A8E558C8D9C6000B615098E8fC",
        "topics": [
          "0x185c6391e7218e85de8a9346fc72024a0f88e1f04c186e6351230b93976ad50b"
        ],
        "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003635c9adc5dea00000",
        "logIndex": 309,
        "blockHash": "0xec5b8ac652db0c4eabeb18672080e7810982020558a38de0169b44a9efeffd9b"
      }
    ],
    "blockNumber": 14595007,
    "cumulativeGasUsed": "18549106",
    "status": 1,
    "byzantium": true
  },
  "args": [
    "100000000000000",
    "1000000000000000000",
    "1000000000000000000000"
  ],
  "solcInputHash": "ad04ab9565e42a9370aa7f055041028d",
  "metadata": "{\"compiler\":{\"version\":\"0.8.9+commit.e5eed63a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_minDepositAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_maxDepositAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_maxBalance\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"name\":\"BalanceWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"depositId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"EtherReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousBalance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"}],\"name\":\"MaxBalanceSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newAmount\",\"type\":\"uint256\"}],\"name\":\"MaxDepositAmountSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newAmount\",\"type\":\"uint256\"}],\"name\":\"MinDepositAmountSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"maxBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxDepositAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minDepositAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_maxDepositAmount\",\"type\":\"uint256\"}],\"name\":\"setMaxAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_maxBalance\",\"type\":\"uint256\"}],\"name\":\"setMaxBalance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_minDepositAmount\",\"type\":\"uint256\"}],\"name\":\"setMinAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalDeposits\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawBalance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"events\":{\"BalanceWithdrawn(address,uint256)\":{\"params\":{\"balance\":\"The current contract balance paid to the owner.\",\"owner\":\"The current owner and recipient of the funds.\"}},\"EtherReceived(uint256,address,uint256)\":{\"params\":{\"amount\":\"The amount deposited by the payer.\",\"depositId\":\"A unique sequencer number identifying the deposit.\",\"emitter\":\"The sending address of the payer.\"}},\"MaxBalanceSet(uint256,uint256)\":{\"params\":{\"newBalance\":\"The new maximum contract balance.\",\"previousBalance\":\"The previous maximum contract balance.\"}},\"MaxDepositAmountSet(uint256,uint256)\":{\"params\":{\"newAmount\":\"The new maximum deposit amount.\",\"previousAmount\":\"The previous maximum deposit amount.\"}},\"MinDepositAmountSet(uint256,uint256)\":{\"params\":{\"newAmount\":\"The new minimum deposit amount.\",\"previousAmount\":\"The previous minimum deposit amount.\"}}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_maxBalance\":\"The initial maximum contract balance.\",\"_maxDepositAmount\":\"The initial maximum deposit amount.\",\"_minDepositAmount\":\"The initial minimum deposit amount.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"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.\"},\"setMaxAmount(uint256)\":{\"params\":{\"_maxDepositAmount\":\"The new maximum deposit amount.\"}},\"setMaxBalance(uint256)\":{\"params\":{\"_maxBalance\":\"The new maximum contract balance.\"}},\"setMinAmount(uint256)\":{\"params\":{\"_minDepositAmount\":\"The new minimum deposit amount.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"TeleportrDeposit Shout out to 0xclem for providing the inspiration for this contract: https://github.com/0xclem/teleportr/blob/main/contracts/BridgeDeposit.sol\",\"version\":1},\"userdoc\":{\"events\":{\"BalanceWithdrawn(address,uint256)\":{\"notice\":\"Emitted any time the balance is withdrawn by the owner.\"},\"EtherReceived(uint256,address,uint256)\":{\"notice\":\"Emitted any time a successful deposit is received.\"},\"MaxBalanceSet(uint256,uint256)\":{\"notice\":\"Emitted any time the contract maximum balance is set.\"},\"MaxDepositAmountSet(uint256,uint256)\":{\"notice\":\"Emitted any time the maximum deposit amount is set.\"},\"MinDepositAmountSet(uint256,uint256)\":{\"notice\":\"Emitted any time the minimum deposit amount is set.\"}},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Initializes a new TeleportrDeposit contract.\"},\"maxBalance()\":{\"notice\":\"The maximum balance the contract can hold after a receive.\"},\"maxDepositAmount()\":{\"notice\":\"The maximum amount that be deposited in a receive.\"},\"minDepositAmount()\":{\"notice\":\"The minimum amount that be deposited in a receive.\"},\"setMaxAmount(uint256)\":{\"notice\":\"Sets the maximum amount that can be deposited in a receive.\"},\"setMaxBalance(uint256)\":{\"notice\":\"Sets the maximum balance the contract can hold after a receive.\"},\"setMinAmount(uint256)\":{\"notice\":\"Sets the minimum amount that can be deposited in a receive.\"},\"totalDeposits()\":{\"notice\":\"The total number of successful deposits received.\"},\"withdrawBalance()\":{\"notice\":\"Sends the contract's current balance to the owner.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/L1/teleportr/TeleportrDeposit.sol\":\"TeleportrDeposit\"},\"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/L1/teleportr/TeleportrDeposit.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity >=0.8.9;\\n\\nimport { Ownable } from \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\n\\n/**\\n * @title TeleportrDeposit\\n *\\n * Shout out to 0xclem for providing the inspiration for this contract:\\n * https://github.com/0xclem/teleportr/blob/main/contracts/BridgeDeposit.sol\\n */\\ncontract TeleportrDeposit is Ownable {\\n    /// The minimum amount that be deposited in a receive.\\n    uint256 public minDepositAmount;\\n    /// The maximum amount that be deposited in a receive.\\n    uint256 public maxDepositAmount;\\n    /// The maximum balance the contract can hold after a receive.\\n    uint256 public maxBalance;\\n    /// The total number of successful deposits received.\\n    uint256 public totalDeposits;\\n\\n    /**\\n     * @notice Emitted any time the minimum deposit amount is set.\\n     * @param previousAmount The previous minimum deposit amount.\\n     * @param newAmount The new minimum deposit amount.\\n     */\\n    event MinDepositAmountSet(uint256 previousAmount, uint256 newAmount);\\n\\n    /**\\n     * @notice Emitted any time the maximum deposit amount is set.\\n     * @param previousAmount The previous maximum deposit amount.\\n     * @param newAmount The new maximum deposit amount.\\n     */\\n    event MaxDepositAmountSet(uint256 previousAmount, uint256 newAmount);\\n\\n    /**\\n     * @notice Emitted any time the contract maximum balance is set.\\n     * @param previousBalance The previous maximum contract balance.\\n     * @param newBalance The new maximum contract balance.\\n     */\\n    event MaxBalanceSet(uint256 previousBalance, uint256 newBalance);\\n\\n    /**\\n     * @notice Emitted any time the balance is withdrawn by the owner.\\n     * @param owner The current owner and recipient of the funds.\\n     * @param balance The current contract balance paid to the owner.\\n     */\\n    event BalanceWithdrawn(address indexed owner, uint256 balance);\\n\\n    /**\\n     * @notice Emitted any time a successful deposit is received.\\n     * @param depositId A unique sequencer number identifying the deposit.\\n     * @param emitter The sending address of the payer.\\n     * @param amount The amount deposited by the payer.\\n     */\\n    event EtherReceived(uint256 indexed depositId, address indexed emitter, uint256 indexed amount);\\n\\n    /**\\n     * @notice Initializes a new TeleportrDeposit contract.\\n     * @param _minDepositAmount The initial minimum deposit amount.\\n     * @param _maxDepositAmount The initial maximum deposit amount.\\n     * @param _maxBalance The initial maximum contract balance.\\n     */\\n    constructor(\\n        uint256 _minDepositAmount,\\n        uint256 _maxDepositAmount,\\n        uint256 _maxBalance\\n    ) {\\n        minDepositAmount = _minDepositAmount;\\n        maxDepositAmount = _maxDepositAmount;\\n        maxBalance = _maxBalance;\\n        totalDeposits = 0;\\n        emit MinDepositAmountSet(0, _minDepositAmount);\\n        emit MaxDepositAmountSet(0, _maxDepositAmount);\\n        emit MaxBalanceSet(0, _maxBalance);\\n    }\\n\\n    /**\\n     * @notice Accepts deposits that will be disbursed to the sender's address on L2.\\n     * The method reverts if the amount is less than the current\\n     * minDepositAmount, the amount is greater than the current\\n     * maxDepositAmount, or the amount causes the contract to exceed its maximum\\n     * allowed balance.\\n     */\\n    receive() external payable {\\n        require(msg.value >= minDepositAmount, \\\"Deposit amount is too small\\\");\\n        require(msg.value <= maxDepositAmount, \\\"Deposit amount is too big\\\");\\n        require(address(this).balance <= maxBalance, \\\"Contract max balance exceeded\\\");\\n\\n        emit EtherReceived(totalDeposits, msg.sender, msg.value);\\n        unchecked {\\n            totalDeposits += 1;\\n        }\\n    }\\n\\n    /**\\n     * @notice Sends the contract's current balance to the owner.\\n     */\\n    function withdrawBalance() external onlyOwner {\\n        address _owner = owner();\\n        uint256 _balance = address(this).balance;\\n        emit BalanceWithdrawn(_owner, _balance);\\n        payable(_owner).transfer(_balance);\\n    }\\n\\n    /**\\n     * @notice Sets the minimum amount that can be deposited in a receive.\\n     * @param _minDepositAmount The new minimum deposit amount.\\n     */\\n    function setMinAmount(uint256 _minDepositAmount) external onlyOwner {\\n        emit MinDepositAmountSet(minDepositAmount, _minDepositAmount);\\n        minDepositAmount = _minDepositAmount;\\n    }\\n\\n    /**\\n     * @notice Sets the maximum amount that can be deposited in a receive.\\n     * @param _maxDepositAmount The new maximum deposit amount.\\n     */\\n    function setMaxAmount(uint256 _maxDepositAmount) external onlyOwner {\\n        emit MaxDepositAmountSet(maxDepositAmount, _maxDepositAmount);\\n        maxDepositAmount = _maxDepositAmount;\\n    }\\n\\n    /**\\n     * @notice Sets the maximum balance the contract can hold after a receive.\\n     * @param _maxBalance The new maximum contract balance.\\n     */\\n    function setMaxBalance(uint256 _maxBalance) external onlyOwner {\\n        emit MaxBalanceSet(maxBalance, _maxBalance);\\n        maxBalance = _maxBalance;\\n    }\\n}\\n\",\"keccak256\":\"0x86af035f651f8d2d9b3acd8048d63ec95037c1411de9bd086c82afc6d9790a9d\",\"license\":\"MIT\"}},\"version\":1}",
  "bytecode": "[encoded data, 5782 characters]",
  "deployedBytecode": "[encoded data, 4982 characters]",
  "devdoc": {
    "events": {
      "BalanceWithdrawn(address,uint256)": {
        "params": {
          "balance": "The current contract balance paid to the owner.",
          "owner": "The current owner and recipient of the funds."
        }
      },
      "EtherReceived(uint256,address,uint256)": {
        "params": {
          "amount": "The amount deposited by the payer.",
          "depositId": "A unique sequencer number identifying the deposit.",
          "emitter": "The sending address of the payer."
        }
      },
      "MaxBalanceSet(uint256,uint256)": {
        "params": {
          "newBalance": "The new maximum contract balance.",
          "previousBalance": "The previous maximum contract balance."
        }
      },
      "MaxDepositAmountSet(uint256,uint256)": {
        "params": {
          "newAmount": "The new maximum deposit amount.",
          "previousAmount": "The previous maximum deposit amount."
        }
      },
      "MinDepositAmountSet(uint256,uint256)": {
        "params": {
          "newAmount": "The new minimum deposit amount.",
          "previousAmount": "The previous minimum deposit amount."
        }
      }
    },
    "kind": "dev",
    "methods": {
      "constructor": {
        "params": {
          "_maxBalance": "The initial maximum contract balance.",
          "_maxDepositAmount": "The initial maximum deposit amount.",
          "_minDepositAmount": "The initial minimum deposit amount."
        }
      },
      "owner()": {
        "details": "Returns the address of the current owner."
      },
      "renounceOwnership()": {
        "details": "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."
      },
      "setMaxAmount(uint256)": {
        "params": {
          "_maxDepositAmount": "The new maximum deposit amount."
        }
      },
      "setMaxBalance(uint256)": {
        "params": {
          "_maxBalance": "The new maximum contract balance."
        }
      },
      "setMinAmount(uint256)": {
        "params": {
          "_minDepositAmount": "The new minimum deposit amount."
        }
      },
      "transferOwnership(address)": {
        "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
      }
    },
    "title": "TeleportrDeposit Shout out to 0xclem for providing the inspiration for this contract: https://github.com/0xclem/teleportr/blob/main/contracts/BridgeDeposit.sol",
    "version": 1
  },
  "userdoc": {
    "events": {
      "BalanceWithdrawn(address,uint256)": {
        "notice": "Emitted any time the balance is withdrawn by the owner."
      },
      "EtherReceived(uint256,address,uint256)": {
        "notice": "Emitted any time a successful deposit is received."
      },
      "MaxBalanceSet(uint256,uint256)": {
        "notice": "Emitted any time the contract maximum balance is set."
      },
      "MaxDepositAmountSet(uint256,uint256)": {
        "notice": "Emitted any time the maximum deposit amount is set."
      },
      "MinDepositAmountSet(uint256,uint256)": {
        "notice": "Emitted any time the minimum deposit amount is set."
      }
    },
    "kind": "user",
    "methods": {
      "constructor": {
        "notice": "Initializes a new TeleportrDeposit contract."
      },
      "maxBalance()": {
        "notice": "The maximum balance the contract can hold after a receive."
      },
      "maxDepositAmount()": {
        "notice": "The maximum amount that be deposited in a receive."
      },
      "minDepositAmount()": {
        "notice": "The minimum amount that be deposited in a receive."
      },
      "setMaxAmount(uint256)": {
        "notice": "Sets the maximum amount that can be deposited in a receive."
      },
      "setMaxBalance(uint256)": {
        "notice": "Sets the maximum balance the contract can hold after a receive."
      },
      "setMinAmount(uint256)": {
        "notice": "Sets the minimum amount that can be deposited in a receive."
      },
      "totalDeposits()": {
        "notice": "The total number of successful deposits received."
      },
      "withdrawBalance()": {
        "notice": "Sends the contract's current balance to the owner."
      }
    },
    "version": 1
  },
  "storageLayout": {
    "storage": [
      {
        "astId": 393,
        "contract": "contracts/L1/teleportr/TeleportrDeposit.sol:TeleportrDeposit",
        "label": "_owner",
        "offset": 0,
        "slot": "0",
        "type": "t_address"
      },
      {
        "astId": 5028,
        "contract": "contracts/L1/teleportr/TeleportrDeposit.sol:TeleportrDeposit",
        "label": "minDepositAmount",
        "offset": 0,
        "slot": "1",
        "type": "t_uint256"
      },
      {
        "astId": 5031,
        "contract": "contracts/L1/teleportr/TeleportrDeposit.sol:TeleportrDeposit",
        "label": "maxDepositAmount",
        "offset": 0,
        "slot": "2",
        "type": "t_uint256"
      },
      {
        "astId": 5034,
        "contract": "contracts/L1/teleportr/TeleportrDeposit.sol:TeleportrDeposit",
        "label": "maxBalance",
        "offset": 0,
        "slot": "3",
        "type": "t_uint256"
      },
      {
        "astId": 5037,
        "contract": "contracts/L1/teleportr/TeleportrDeposit.sol:TeleportrDeposit",
        "label": "totalDeposits",
        "offset": 0,
        "slot": "4",
        "type": "t_uint256"
      }
    ],
    "types": {
      "t_address": {
        "encoding": "inplace",
        "label": "address",
        "numberOfBytes": "20"
      },
      "t_uint256": {
        "encoding": "inplace",
        "label": "uint256",
        "numberOfBytes": "32"
      }
    }
  }
}