{
  "_format": "hh-sol-artifact-1",
  "contractName": "Epoch",
  "sourceName": "contracts/utils/Epoch.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_period",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_startTime",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_startEpoch",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "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": "callable",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getCurrentEpoch",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getLastEpoch",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getNextEpoch",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getPeriod",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getStartTime",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "nextEpochPoint",
      "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": "_period",
          "type": "uint256"
        }
      ],
      "name": "setPeriod",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b5060405161061f38038061061f83398101604081905261002f916100ea565b6100383361007b565b6001839055600282905561006f61005a82856100cb602090811b61025a17901c565b6002546100de60201b61026d1790919060201c565b60035550610164915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006100d7828461012f565b9392505050565b60006100d78284610117565b6000806000606084860312156100fe578283fd5b8351925060208401519150604084015190509250925092565b6000821982111561012a5761012a61014e565b500190565b60008160001904831182151516156101495761014961014e565b500290565b634e487b7160e01b600052601160045260246000fd5b6104ac806101736000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80638da5cb5b116100715780638da5cb5b14610102578063b97dd9e21461011d578063c5967c2614610125578063c828371e1461012d578063efe97d0514610135578063f2fde38b1461013d57600080fd5b80630f3a9f65146100ae5780631ed24195146100c3578063398bac63146100da5780636a2ab602146100e2578063715018a6146100fa575b600080fd5b6100c16100bc3660046103da565b610150565b005b6001545b6040519081526020015b60405180910390f35b6100c761015d565b6100ea61016c565b60405190151581526020016100d1565b6100c1610176565b6000546040516001600160a01b0390911681526020016100d1565b6100c761018a565b6100c76101b0565b6002546100c7565b6100c76101d2565b6100c161014b3660046103b3565b6101dc565b610158610279565b600155565b60006101676102d3565b905090565b60006101676102f2565b61017e610279565b610188600061030b565b565b60006101676001546101aa6002546101a46002544261035b565b90610372565b9061037e565b60006101676101c96001546101c361038a565b9061025a565b6002549061026d565b600061016761038a565b6101e4610279565b6001600160a01b03811661024e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6102578161030b565b50565b6000610266828461042a565b9392505050565b600061026682846103f2565b6000546001600160a01b031633146101885760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610245565b60006101676001546101aa60025460035461037290919063ffffffff16565b60006102fc61038a565b61030461018a565b1015905090565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183101561036b5781610266565b5090919050565b60006102668284610449565b6000610266828461040a565b600060035460025414156103a0576101676102d3565b61016760016103ad6102d3565b9061026d565b6000602082840312156103c4578081fd5b81356001600160a01b0381168114610266578182fd5b6000602082840312156103eb578081fd5b5035919050565b6000821982111561040557610405610460565b500190565b60008261042557634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561044457610444610460565b500290565b60008282101561045b5761045b610460565b500390565b634e487b7160e01b600052601160045260246000fdfea264697066735822122006bd3298e4c36a20b64fda9a6a654ac90ae9d7e350f6ee162a8e65802dcad2ea64736f6c63430008040033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80638da5cb5b116100715780638da5cb5b14610102578063b97dd9e21461011d578063c5967c2614610125578063c828371e1461012d578063efe97d0514610135578063f2fde38b1461013d57600080fd5b80630f3a9f65146100ae5780631ed24195146100c3578063398bac63146100da5780636a2ab602146100e2578063715018a6146100fa575b600080fd5b6100c16100bc3660046103da565b610150565b005b6001545b6040519081526020015b60405180910390f35b6100c761015d565b6100ea61016c565b60405190151581526020016100d1565b6100c1610176565b6000546040516001600160a01b0390911681526020016100d1565b6100c761018a565b6100c76101b0565b6002546100c7565b6100c76101d2565b6100c161014b3660046103b3565b6101dc565b610158610279565b600155565b60006101676102d3565b905090565b60006101676102f2565b61017e610279565b610188600061030b565b565b60006101676001546101aa6002546101a46002544261035b565b90610372565b9061037e565b60006101676101c96001546101c361038a565b9061025a565b6002549061026d565b600061016761038a565b6101e4610279565b6001600160a01b03811661024e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6102578161030b565b50565b6000610266828461042a565b9392505050565b600061026682846103f2565b6000546001600160a01b031633146101885760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610245565b60006101676001546101aa60025460035461037290919063ffffffff16565b60006102fc61038a565b61030461018a565b1015905090565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183101561036b5781610266565b5090919050565b60006102668284610449565b6000610266828461040a565b600060035460025414156103a0576101676102d3565b61016760016103ad6102d3565b9061026d565b6000602082840312156103c4578081fd5b81356001600160a01b0381168114610266578182fd5b6000602082840312156103eb578081fd5b5035919050565b6000821982111561040557610405610460565b500190565b60008261042557634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561044457610444610460565b500290565b60008282101561045b5761045b610460565b500390565b634e487b7160e01b600052601160045260246000fdfea264697066735822122006bd3298e4c36a20b64fda9a6a654ac90ae9d7e350f6ee162a8e65802dcad2ea64736f6c63430008040033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
