{
  "_format": "hh-sol-artifact-1",
  "contractName": "DrawRingBufferLibExposed",
  "sourceName": "contracts/test/DrawRingBufferExposed.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "uint8",
          "name": "_cardinality",
          "type": "uint8"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "MAX_CARDINALITY",
      "outputs": [
        {
          "internalType": "uint16",
          "name": "",
          "type": "uint16"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "uint32",
              "name": "lastDrawId",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "nextIndex",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "cardinality",
              "type": "uint32"
            }
          ],
          "internalType": "struct DrawRingBufferLib.Buffer",
          "name": "_buffer",
          "type": "tuple"
        },
        {
          "internalType": "uint32",
          "name": "_drawId",
          "type": "uint32"
        }
      ],
      "name": "_getIndex",
      "outputs": [
        {
          "internalType": "uint32",
          "name": "",
          "type": "uint32"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "uint32",
              "name": "lastDrawId",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "nextIndex",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "cardinality",
              "type": "uint32"
            }
          ],
          "internalType": "struct DrawRingBufferLib.Buffer",
          "name": "_buffer",
          "type": "tuple"
        },
        {
          "internalType": "uint32",
          "name": "_drawId",
          "type": "uint32"
        }
      ],
      "name": "_push",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint32",
              "name": "lastDrawId",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "nextIndex",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "cardinality",
              "type": "uint32"
            }
          ],
          "internalType": "struct DrawRingBufferLib.Buffer",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b506040516105e73803806105e783398101604081905261002f91610059565b6000805463ffffffff60401b191660ff929092166801000000000000000002919091179055610083565b60006020828403121561006b57600080fd5b815160ff8116811461007c57600080fd5b9392505050565b610555806100926000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806311f807df1461004657806379ba59ff146100735780638200d873146100b5575b600080fd5b6100596100543660046103d0565b6100d1565b60405163ffffffff90911681526020015b60405180910390f35b6100866100813660046103d0565b6100e6565b60408051825163ffffffff9081168252602080850151821690830152928201519092169082015260600161006a565b6100be61010081565b60405161ffff909116815260200161006a565b60006100dd838361010d565b90505b92915050565b60408051606081018252600080825260208201819052918101919091526100dd8383610242565b60006101188361032d565b80156101345750826000015163ffffffff168263ffffffff1611155b6101855760405162461bcd60e51b815260206004820152600f60248201527f4452422f6675747572652d64726177000000000000000000000000000000000060448201526064015b60405180910390fd5b82516000906101959084906104c2565b9050836040015163ffffffff168163ffffffff16106101f65760405162461bcd60e51b815260206004820152601060248201527f4452422f657870697265642d6472617700000000000000000000000000000000604482015260640161017c565b6000610216856020015163ffffffff16866040015163ffffffff16610355565b90506102398163ffffffff168363ffffffff16876040015163ffffffff16610383565b95945050505050565b60408051606081018252600080825260208201819052918101919091526102688361032d565b158061028b5750825161027c906001610483565b63ffffffff168263ffffffff16145b6102d75760405162461bcd60e51b815260206004820152601260248201527f4452422f6d7573742d62652d636f6e7469670000000000000000000000000000604482015260640161017c565b60405180606001604052808363ffffffff16815260200161030c856020015163ffffffff16866040015163ffffffff1661039b565b63ffffffff168152602001846040015163ffffffff16815250905092915050565b6000816020015163ffffffff16600014801561034e5750815163ffffffff16155b1592915050565b600081610364575060006100e0565b6100dd6001610373848661046b565b61037d91906104ab565b836103ab565b600061039383610373848761046b565b949350505050565b60006100dd61037d84600161046b565b60006100dd82846104e7565b803563ffffffff811681146103cb57600080fd5b919050565b60008082840360808112156103e457600080fd5b60608112156103f257600080fd5b506040516060810181811067ffffffffffffffff8211171561042457634e487b7160e01b600052604160045260246000fd5b604052610430846103b7565b815261043e602085016103b7565b602082015261044f604085016103b7565b60408201529150610462606084016103b7565b90509250929050565b6000821982111561047e5761047e610509565b500190565b600063ffffffff8083168185168083038211156104a2576104a2610509565b01949350505050565b6000828210156104bd576104bd610509565b500390565b600063ffffffff838116908316818110156104df576104df610509565b039392505050565b60008261050457634e487b7160e01b600052601260045260246000fd5b500690565b634e487b7160e01b600052601160045260246000fdfea264697066735822122082b877c64d2ead1cc15269da44efe6729dded4c1cb39b0a8d4dddf1bebee116964736f6c63430008060033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c806311f807df1461004657806379ba59ff146100735780638200d873146100b5575b600080fd5b6100596100543660046103d0565b6100d1565b60405163ffffffff90911681526020015b60405180910390f35b6100866100813660046103d0565b6100e6565b60408051825163ffffffff9081168252602080850151821690830152928201519092169082015260600161006a565b6100be61010081565b60405161ffff909116815260200161006a565b60006100dd838361010d565b90505b92915050565b60408051606081018252600080825260208201819052918101919091526100dd8383610242565b60006101188361032d565b80156101345750826000015163ffffffff168263ffffffff1611155b6101855760405162461bcd60e51b815260206004820152600f60248201527f4452422f6675747572652d64726177000000000000000000000000000000000060448201526064015b60405180910390fd5b82516000906101959084906104c2565b9050836040015163ffffffff168163ffffffff16106101f65760405162461bcd60e51b815260206004820152601060248201527f4452422f657870697265642d6472617700000000000000000000000000000000604482015260640161017c565b6000610216856020015163ffffffff16866040015163ffffffff16610355565b90506102398163ffffffff168363ffffffff16876040015163ffffffff16610383565b95945050505050565b60408051606081018252600080825260208201819052918101919091526102688361032d565b158061028b5750825161027c906001610483565b63ffffffff168263ffffffff16145b6102d75760405162461bcd60e51b815260206004820152601260248201527f4452422f6d7573742d62652d636f6e7469670000000000000000000000000000604482015260640161017c565b60405180606001604052808363ffffffff16815260200161030c856020015163ffffffff16866040015163ffffffff1661039b565b63ffffffff168152602001846040015163ffffffff16815250905092915050565b6000816020015163ffffffff16600014801561034e5750815163ffffffff16155b1592915050565b600081610364575060006100e0565b6100dd6001610373848661046b565b61037d91906104ab565b836103ab565b600061039383610373848761046b565b949350505050565b60006100dd61037d84600161046b565b60006100dd82846104e7565b803563ffffffff811681146103cb57600080fd5b919050565b60008082840360808112156103e457600080fd5b60608112156103f257600080fd5b506040516060810181811067ffffffffffffffff8211171561042457634e487b7160e01b600052604160045260246000fd5b604052610430846103b7565b815261043e602085016103b7565b602082015261044f604085016103b7565b60408201529150610462606084016103b7565b90509250929050565b6000821982111561047e5761047e610509565b500190565b600063ffffffff8083168185168083038211156104a2576104a2610509565b01949350505050565b6000828210156104bd576104bd610509565b500390565b600063ffffffff838116908316818110156104df576104df610509565b039392505050565b60008261050457634e487b7160e01b600052601260045260246000fd5b500690565b634e487b7160e01b600052601160045260246000fdfea264697066735822122082b877c64d2ead1cc15269da44efe6729dded4c1cb39b0a8d4dddf1bebee116964736f6c63430008060033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
