{
  "contractName": "StakingPoolProducer",
  "sourceName": "contracts/interfaces/StakingPoolProducer.sol",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "reward",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "commission",
          "type": "uint256"
        }
      ],
      "name": "BlockProduced",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_index",
          "type": "uint256"
        }
      ],
      "name": "produceBlock",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "linkReferences": {},
  "deployedLinkReferences": {},
  "devdoc": {
    "author": "Danilo Tuler",
    "kind": "dev",
    "methods": {
      "produceBlock(uint256)": {
        "returns": {
          "_0": "true when everything went fine"
        }
      }
    },
    "title": "Interaction between a pool and the PoS block production.",
    "version": 1
  },
  "userdoc": {
    "events": {
      "BlockProduced(uint256,uint256)": {
        "notice": "this event is emitted at every produceBlock call reward is the block reward commission is how much CTSI is directed to the pool owner"
      }
    },
    "kind": "user",
    "methods": {
      "produceBlock(uint256)": {
        "notice": "routes produceBlock to POS contract and updates internal states of the pool"
      }
    },
    "notice": "This interface provides an opportunity to handle the necessary logic after a block is produced. A commission is taken from the block reward, and the remaining stays in the pool, raising the pool share value, and being further staked.",
    "version": 1
  },
  "evm": {
    "gasEstimates": null,
    "methodIdentifiers": {
      "produceBlock(uint256)": "a5a6cd0b"
    }
  }
}