{
  "_format": "hh-sol-artifact-1",
  "contractName": "DepositQueueLibTest",
  "sourceName": "contracts/test/liquidity/lib/DepositQueueLibTest.sol",
  "abi": [
    {
      "inputs": [],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "upToDepositId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "firstDepositId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "lastDepositId",
          "type": "uint256"
        }
      ],
      "name": "OutOfRange",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "upToDepositId",
          "type": "uint256"
        }
      ],
      "name": "batchDequeue",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "depositId",
          "type": "uint256"
        }
      ],
      "name": "deleteDeposit",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "deletedData",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "depositHash",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "depositHash",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "enqueue",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "depositId",
          "type": "uint256"
        }
      ],
      "name": "getDepositData",
      "outputs": [
        {
          "components": [
            {
              "internalType": "bytes32",
              "name": "depositHash",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "sender",
              "type": "address"
            }
          ],
          "internalType": "struct DepositQueueLib.DepositData",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getFront",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getRear",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "latestDepositHashes",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "latestDepositId",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x6080604052348015600f57600080fd5b506040805180820190915260008082526020820181815281546001808201845592805292517f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563600290940293840155517f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56490920180546001600160a01b0319166001600160a01b039093169290921790915580556106bd806100b26000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063899af0ef11610066578063899af0ef14610173578063922ca3ad146101a7578063a07a4d63146101af578063c13819b6146101c2578063cf393481146101f957600080fd5b80630e4915aa14610098578063273891ac146100af57806370082ce7146100b85780637c906ef9146100cd575b600080fd5b6000545b6040519081526020015b60405180910390f35b61009c60045481565b6100cb6100c63660046105b1565b61020c565b005b6100cb6100db3660046105ca565b60008054604080518082019091529384526001600160a01b039283166020850190815260018201835591805292517f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563600285029081019190915590517f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56490910180546001600160a01b03191691909216179055600455565b60025460035461018a91906001600160a01b031682565b604080519283526001600160a01b039091166020830152016100a6565b60015461009c565b61009c6101bd3660046105b1565b610242565b6101d56101d03660046105b1565b610263565b60408051825181526020928301516001600160a01b031692810192909252016100a6565b6100cb6102073660046105b1565b6102c4565b6102176000826102e7565b805160025560200151600380546001600160a01b0319166001600160a01b0390921691909117905550565b6005818154811061025257600080fd5b600091825260209091200154905081565b6040805180820190915260008082526020820152600080548390811061028b5761028b610606565b60009182526020918290206040805180820190915260029092020180548252600101546001600160a01b03169181019190915292915050565b6102cf600082610383565b80516102e391600591602090910190610551565b5050565b604080518082019091526000808252602082015282600001828154811061031057610310610606565b60009182526020918290206040805180820190915260029092020180548252600101546001600160a01b031691810191909152835490915083908390811061035a5761035a610606565b60009182526020822060029091020190815560010180546001600160a01b031916905592915050565b60018201548254606091908310158061039b57508083105b156103e0578354839082906103b290600190610632565b604051634a0dd9bd60e01b815260048101939093526024830191909152604482015260640160405180910390fd5b6000815b84811161044457855460009087908390811061040257610402610606565b60009182526020909120600160029092020101546001600160a01b031614610432578161042e81610645565b9250505b8061043c81610645565b9150506103e4565b5060008167ffffffffffffffff8111156104605761046061065e565b604051908082528060200260200182016040528015610489578160200160208202803683370190505b5090506000835b8681116105345787546000908990839081106104ae576104ae610606565b60009182526020909120600160029092020101546001600160a01b031614610522578760000181815481106104e5576104e5610606565b90600052602060002090600202016000015483838151811061050957610509610606565b60209081029190910101528161051e81610645565b9250505b8061052c81610645565b915050610490565b50610540866001610674565b600188015550925050505b92915050565b82805482825590600052602060002090810192821561058c579160200282015b8281111561058c578251825591602001919060010190610571565b5061059892915061059c565b5090565b5b80821115610598576000815560010161059d565b6000602082840312156105c357600080fd5b5035919050565b600080604083850312156105dd57600080fd5b8235915060208301356001600160a01b03811681146105fb57600080fd5b809150509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561054b5761054b61061c565b6000600182016106575761065761061c565b5060010190565b634e487b7160e01b600052604160045260246000fd5b8082018082111561054b5761054b61061c56fea26469706673582212206ee74a809825fb8240af10f377ab6689b005f52b0830571f0f2b90df56f91afd64736f6c634300081b0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100935760003560e01c8063899af0ef11610066578063899af0ef14610173578063922ca3ad146101a7578063a07a4d63146101af578063c13819b6146101c2578063cf393481146101f957600080fd5b80630e4915aa14610098578063273891ac146100af57806370082ce7146100b85780637c906ef9146100cd575b600080fd5b6000545b6040519081526020015b60405180910390f35b61009c60045481565b6100cb6100c63660046105b1565b61020c565b005b6100cb6100db3660046105ca565b60008054604080518082019091529384526001600160a01b039283166020850190815260018201835591805292517f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563600285029081019190915590517f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56490910180546001600160a01b03191691909216179055600455565b60025460035461018a91906001600160a01b031682565b604080519283526001600160a01b039091166020830152016100a6565b60015461009c565b61009c6101bd3660046105b1565b610242565b6101d56101d03660046105b1565b610263565b60408051825181526020928301516001600160a01b031692810192909252016100a6565b6100cb6102073660046105b1565b6102c4565b6102176000826102e7565b805160025560200151600380546001600160a01b0319166001600160a01b0390921691909117905550565b6005818154811061025257600080fd5b600091825260209091200154905081565b6040805180820190915260008082526020820152600080548390811061028b5761028b610606565b60009182526020918290206040805180820190915260029092020180548252600101546001600160a01b03169181019190915292915050565b6102cf600082610383565b80516102e391600591602090910190610551565b5050565b604080518082019091526000808252602082015282600001828154811061031057610310610606565b60009182526020918290206040805180820190915260029092020180548252600101546001600160a01b031691810191909152835490915083908390811061035a5761035a610606565b60009182526020822060029091020190815560010180546001600160a01b031916905592915050565b60018201548254606091908310158061039b57508083105b156103e0578354839082906103b290600190610632565b604051634a0dd9bd60e01b815260048101939093526024830191909152604482015260640160405180910390fd5b6000815b84811161044457855460009087908390811061040257610402610606565b60009182526020909120600160029092020101546001600160a01b031614610432578161042e81610645565b9250505b8061043c81610645565b9150506103e4565b5060008167ffffffffffffffff8111156104605761046061065e565b604051908082528060200260200182016040528015610489578160200160208202803683370190505b5090506000835b8681116105345787546000908990839081106104ae576104ae610606565b60009182526020909120600160029092020101546001600160a01b031614610522578760000181815481106104e5576104e5610606565b90600052602060002090600202016000015483838151811061050957610509610606565b60209081029190910101528161051e81610645565b9250505b8061052c81610645565b915050610490565b50610540866001610674565b600188015550925050505b92915050565b82805482825590600052602060002090810192821561058c579160200282015b8281111561058c578251825591602001919060010190610571565b5061059892915061059c565b5090565b5b80821115610598576000815560010161059d565b6000602082840312156105c357600080fd5b5035919050565b600080604083850312156105dd57600080fd5b8235915060208301356001600160a01b03811681146105fb57600080fd5b809150509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561054b5761054b61061c565b6000600182016106575761065761061c565b5060010190565b634e487b7160e01b600052604160045260246000fd5b8082018082111561054b5761054b61061c56fea26469706673582212206ee74a809825fb8240af10f377ab6689b005f52b0830571f0f2b90df56f91afd64736f6c634300081b0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
