{
  "_format": "hh-sol-artifact-1",
  "contractName": "TickTreeTest",
  "sourceName": "contracts/test/TickTreeTest.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "int24",
          "name": "tick",
          "type": "int24"
        }
      ],
      "name": "getGasCostOfFlipTick",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "int24",
          "name": "tick",
          "type": "int24"
        }
      ],
      "name": "getGasCostOfNextTick",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "int24",
          "name": "tick",
          "type": "int24"
        }
      ],
      "name": "isInitialized",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "int24",
          "name": "tick",
          "type": "int24"
        }
      ],
      "name": "nextTick",
      "outputs": [
        {
          "internalType": "int24",
          "name": "next",
          "type": "int24"
        },
        {
          "internalType": "bool",
          "name": "initialized",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "node",
          "type": "uint256"
        },
        {
          "internalType": "uint8",
          "name": "tick",
          "type": "uint8"
        }
      ],
      "name": "nextTickInSameNode",
      "outputs": [
        {
          "internalType": "int24",
          "name": "next",
          "type": "int24"
        },
        {
          "internalType": "bool",
          "name": "initialized",
          "type": "bool"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "root",
      "outputs": [
        {
          "internalType": "uint32",
          "name": "",
          "type": "uint32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "int16",
          "name": "",
          "type": "int16"
        }
      ],
      "name": "tickSecondLayer",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "int16",
          "name": "",
          "type": "int16"
        }
      ],
      "name": "tickTable",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "int24",
          "name": "tick",
          "type": "int24"
        }
      ],
      "name": "toggleTick",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b5061068d806100206000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c8063a637af9611610076578063c677e3e01161005b578063c677e3e0146101e3578063ebf0c71714610210578063f04bc9431461023957600080fd5b8063a637af9614610194578063b9b7393b146101b457600080fd5b80632bdc2fd3146100a8578063534b55f6146100fc57806371303c0f146101405780638ce5172e14610172575b600080fd5b6100e8600480360360208110156100be57600080fd5b503560020b600881901d600190810b60009081526002602052604090205460ff9092161b16151590565b604080519115158252519081900360200190f35b6101226004803603604081101561011257600080fd5b508035906020013560ff16610259565b6040805160029390930b835290151560208301528051918290030190f35b6101606004803603602081101561015657600080fd5b503560020b610274565b60408051918252519081900360200190f35b6101926004803603602081101561018857600080fd5b503560020b6102a3565b005b610122600480360360208110156101aa57600080fd5b503560020b6102de565b610160600480360360208110156101ca57600080fd5b50600160208190529035900b6000908152604090205481565b610160600480360360208110156101f957600080fd5b5060026020523560010b6000908152604090205481565b6000546102209063ffffffff1681565b6040805163ffffffff9092168252519081900360200190f35b6101606004803603602081101561024f57600080fd5b503560020b61032a565b600080610269848460ff16610372565b909590945092505050565b6000805a6000549091506102999060029060019063ffffffff9081169087906104c916565b505a900392915050565b6000546102c19060029060019063ffffffff90811690859061058b16565b6000805463ffffffff191663ffffffff9290921691909117905550565b6000805481906102ff9060029060019063ffffffff9081169087906104c916565b600881901d600190810b60009081526002602052604090205491935060ff84161b1615159050915091565b6000805a60005490915061034f9060029060019063ffffffff90811690879061058b16565b6000805463ffffffff191663ffffffff929092169190911790555a900392915050565b60008060ff831684811c80830361038e578460ff1793506104c0565b7f555555555555555555555555555555555555555555555555555555555555555560008290038216908116156fffffffffffffffffffffffffffffffff82161560071b1777ffffffffffffffff0000000000000000ffffffffffffffff82161560061b177bffffffff00000000ffffffff00000000ffffffff00000000ffffffff82161560051b177dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff82161560041b177eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff82161560031b177f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f82161560021b177f33333333333333333333333333333333333333333333333333333333333333339091161560011b1760ff1685019350600192505b50509250929050565b600190810190600090600883811d610d8a01901c90829061ffff83161b851663ffffffff161561052c576104fd8785610623565b90945090925090508015610512575050610583565b61052386610d8b840160010b610623565b90945090925090505b8061056f5761054a8563ffffffff168360010193508360010b610372565b9093509050806105625750620d89e891506105839050565b61056c8684610654565b92505b61057e87610d89198501610654565b925050505b949350505050565b816000806105c88785600881901d600181810b60009081526020949094526040909320805460ff9093169390931b80831890935591811490151891565b91509150811561061957610d8a01600181810b60081d80820b6000908152602089905260409020805460ff9094169290921b808418909255821591909214818118935014610619576001811b831892505b5050949350505050565b600881901d600181900b60009081526020849052604081205481906106489085610372565b93969095509293505050565b600181900b600090815260208390526040902054600882901b906106789082610372565b50939250505056fea164736f6c6343000814000a",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a35760003560e01c8063a637af9611610076578063c677e3e01161005b578063c677e3e0146101e3578063ebf0c71714610210578063f04bc9431461023957600080fd5b8063a637af9614610194578063b9b7393b146101b457600080fd5b80632bdc2fd3146100a8578063534b55f6146100fc57806371303c0f146101405780638ce5172e14610172575b600080fd5b6100e8600480360360208110156100be57600080fd5b503560020b600881901d600190810b60009081526002602052604090205460ff9092161b16151590565b604080519115158252519081900360200190f35b6101226004803603604081101561011257600080fd5b508035906020013560ff16610259565b6040805160029390930b835290151560208301528051918290030190f35b6101606004803603602081101561015657600080fd5b503560020b610274565b60408051918252519081900360200190f35b6101926004803603602081101561018857600080fd5b503560020b6102a3565b005b610122600480360360208110156101aa57600080fd5b503560020b6102de565b610160600480360360208110156101ca57600080fd5b50600160208190529035900b6000908152604090205481565b610160600480360360208110156101f957600080fd5b5060026020523560010b6000908152604090205481565b6000546102209063ffffffff1681565b6040805163ffffffff9092168252519081900360200190f35b6101606004803603602081101561024f57600080fd5b503560020b61032a565b600080610269848460ff16610372565b909590945092505050565b6000805a6000549091506102999060029060019063ffffffff9081169087906104c916565b505a900392915050565b6000546102c19060029060019063ffffffff90811690859061058b16565b6000805463ffffffff191663ffffffff9290921691909117905550565b6000805481906102ff9060029060019063ffffffff9081169087906104c916565b600881901d600190810b60009081526002602052604090205491935060ff84161b1615159050915091565b6000805a60005490915061034f9060029060019063ffffffff90811690879061058b16565b6000805463ffffffff191663ffffffff929092169190911790555a900392915050565b60008060ff831684811c80830361038e578460ff1793506104c0565b7f555555555555555555555555555555555555555555555555555555555555555560008290038216908116156fffffffffffffffffffffffffffffffff82161560071b1777ffffffffffffffff0000000000000000ffffffffffffffff82161560061b177bffffffff00000000ffffffff00000000ffffffff00000000ffffffff82161560051b177dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff82161560041b177eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff82161560031b177f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f82161560021b177f33333333333333333333333333333333333333333333333333333333333333339091161560011b1760ff1685019350600192505b50509250929050565b600190810190600090600883811d610d8a01901c90829061ffff83161b851663ffffffff161561052c576104fd8785610623565b90945090925090508015610512575050610583565b61052386610d8b840160010b610623565b90945090925090505b8061056f5761054a8563ffffffff168360010193508360010b610372565b9093509050806105625750620d89e891506105839050565b61056c8684610654565b92505b61057e87610d89198501610654565b925050505b949350505050565b816000806105c88785600881901d600181810b60009081526020949094526040909320805460ff9093169390931b80831890935591811490151891565b91509150811561061957610d8a01600181810b60081d80820b6000908152602089905260409020805460ff9094169290921b808418909255821591909214818118935014610619576001811b831892505b5050949350505050565b600881901d600181900b60009081526020849052604081205481906106489085610372565b93969095509293505050565b600181900b600090815260208390526040902054600882901b906106789082610372565b50939250505056fea164736f6c6343000814000a",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
