[
  {
    "anonymous": false,
    "inputs": [
      { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" },
      { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" }
    ],
    "name": "OwnershipTransferred",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [{ "indexed": false, "internalType": "address", "name": "account", "type": "address" }],
    "name": "Paused",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [{ "indexed": false, "internalType": "address", "name": "account", "type": "address" }],
    "name": "Unpaused",
    "type": "event"
  },
  {
    "inputs": [],
    "name": "bplus",
    "outputs": [{ "internalType": "contract IBEP20", "name": "", "type": "address" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [{ "internalType": "uint32", "name": "_stakingInfoId", "type": "uint32" }],
    "name": "claim",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [{ "internalType": "uint32", "name": "_poolConfigId", "type": "uint32" }],
    "name": "getAllStakingInfos",
    "outputs": [
      {
        "components": [
          { "internalType": "uint32", "name": "id", "type": "uint32" },
          { "internalType": "address", "name": "sender", "type": "address" },
          { "internalType": "uint32", "name": "poolConfig", "type": "uint32" },
          { "internalType": "uint256", "name": "staked", "type": "uint256" },
          { "internalType": "uint256", "name": "createdAt", "type": "uint256" },
          { "internalType": "bool", "name": "isReceived", "type": "bool" }
        ],
        "internalType": "struct StakingPool.StakingInfo[]",
        "name": "",
        "type": "tuple[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getMinStaking",
    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [{ "internalType": "uint32", "name": "_poolConfigId", "type": "uint32" }],
    "name": "getPoolConfig",
    "outputs": [
      { "internalType": "uint32", "name": "_id", "type": "uint32" },
      { "internalType": "uint32", "name": "_totalDay", "type": "uint32" },
      { "internalType": "uint256", "name": "_limit", "type": "uint256" },
      { "internalType": "uint256", "name": "_staking", "type": "uint256" },
      { "internalType": "uint256", "name": "_startTime", "type": "uint256" },
      { "internalType": "uint256", "name": "_endTime", "type": "uint256" },
      { "internalType": "uint16", "name": "_apr", "type": "uint16" },
      { "internalType": "uint16", "name": "_aprDecimal", "type": "uint16" },
      { "internalType": "bool", "name": "_isActive", "type": "bool" }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getPoolConfigs",
    "outputs": [
      {
        "components": [
          { "internalType": "uint32", "name": "id", "type": "uint32" },
          { "internalType": "uint32", "name": "totalDay", "type": "uint32" },
          { "internalType": "uint256", "name": "limit", "type": "uint256" },
          { "internalType": "uint256", "name": "staking", "type": "uint256" },
          { "internalType": "uint256", "name": "startTime", "type": "uint256" },
          { "internalType": "uint256", "name": "endTime", "type": "uint256" },
          { "internalType": "uint16", "name": "apr", "type": "uint16" },
          { "internalType": "uint16", "name": "aprDecimal", "type": "uint16" },
          { "internalType": "bool", "name": "isActive", "type": "bool" }
        ],
        "internalType": "struct StakingPool.PoolConfig[]",
        "name": "",
        "type": "tuple[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [{ "internalType": "uint32", "name": "_stakingInfoId", "type": "uint32" }],
    "name": "getStakingInfo",
    "outputs": [
      { "internalType": "uint32", "name": "_id", "type": "uint32" },
      { "internalType": "address", "name": "_sender", "type": "address" },
      { "internalType": "uint32", "name": "_poolConfig", "type": "uint32" },
      { "internalType": "uint256", "name": "_staked", "type": "uint256" },
      { "internalType": "uint256", "name": "_createdAt", "type": "uint256" },
      { "internalType": "bool", "name": "_isReceived", "type": "bool" }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [{ "internalType": "uint32", "name": "_poolConfigId", "type": "uint32" }],
    "name": "getStakingInfos",
    "outputs": [
      {
        "components": [
          { "internalType": "uint32", "name": "id", "type": "uint32" },
          { "internalType": "address", "name": "sender", "type": "address" },
          { "internalType": "uint32", "name": "poolConfig", "type": "uint32" },
          { "internalType": "uint256", "name": "staked", "type": "uint256" },
          { "internalType": "uint256", "name": "createdAt", "type": "uint256" },
          { "internalType": "bool", "name": "isReceived", "type": "bool" }
        ],
        "internalType": "struct StakingPool.StakingInfo[]",
        "name": "",
        "type": "tuple[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getTotalPoolConfig",
    "outputs": [{ "internalType": "uint16", "name": "", "type": "uint16" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [{ "internalType": "contract IBEP20", "name": "_bplus", "type": "address" }],
    "name": "initByOwner",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  { "inputs": [], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" },
  {
    "inputs": [],
    "name": "minStaking",
    "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": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" },
  {
    "inputs": [],
    "name": "paused",
    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [{ "internalType": "uint32", "name": "", "type": "uint32" }],
    "name": "poolConfigs",
    "outputs": [
      { "internalType": "uint32", "name": "id", "type": "uint32" },
      { "internalType": "uint32", "name": "totalDay", "type": "uint32" },
      { "internalType": "uint256", "name": "limit", "type": "uint256" },
      { "internalType": "uint256", "name": "staking", "type": "uint256" },
      { "internalType": "uint256", "name": "startTime", "type": "uint256" },
      { "internalType": "uint256", "name": "endTime", "type": "uint256" },
      { "internalType": "uint16", "name": "apr", "type": "uint16" },
      { "internalType": "uint16", "name": "aprDecimal", "type": "uint16" },
      { "internalType": "bool", "name": "isActive", "type": "bool" }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" },
  {
    "inputs": [{ "internalType": "uint16", "name": "_minStaking", "type": "uint16" }],
    "name": "setMinStaking",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "uint32", "name": "_id", "type": "uint32" },
      { "internalType": "uint32", "name": "_totalDay", "type": "uint32" },
      { "internalType": "uint256", "name": "_limit", "type": "uint256" },
      { "internalType": "uint256", "name": "_staking", "type": "uint256" },
      { "internalType": "uint256", "name": "_startTime", "type": "uint256" },
      { "internalType": "uint256", "name": "_endTime", "type": "uint256" },
      { "internalType": "uint16", "name": "_apr", "type": "uint16" },
      { "internalType": "uint16", "name": "_aprDecimal", "type": "uint16" },
      { "internalType": "bool", "name": "_isActive", "type": "bool" }
    ],
    "name": "setPoolConfig",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "uint32", "name": "_id", "type": "uint32" },
      { "internalType": "uint256", "name": "_staked", "type": "uint256" },
      { "internalType": "uint256", "name": "_createdAt", "type": "uint256" },
      { "internalType": "bool", "name": "_isReceived", "type": "bool" }
    ],
    "name": "setStakingInfo",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [{ "internalType": "uint16", "name": "_totalPoolConfig", "type": "uint16" }],
    "name": "setTotalPoolConfig",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "uint256", "name": "_amount", "type": "uint256" },
      { "internalType": "uint32", "name": "_poolConfigId", "type": "uint32" }
    ],
    "name": "stake",
    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
    "name": "stakingInfos",
    "outputs": [
      { "internalType": "uint32", "name": "id", "type": "uint32" },
      { "internalType": "address", "name": "sender", "type": "address" },
      { "internalType": "uint32", "name": "poolConfig", "type": "uint32" },
      { "internalType": "uint256", "name": "staked", "type": "uint256" },
      { "internalType": "uint256", "name": "createdAt", "type": "uint256" },
      { "internalType": "bool", "name": "isReceived", "type": "bool" }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "totalPoolConfig",
    "outputs": [{ "internalType": "uint16", "name": "", "type": "uint16" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "totalStakingInfo",
    "outputs": [{ "internalType": "uint256", "name": "_value", "type": "uint256" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [{ "internalType": "address", "name": "newOwner", "type": "address" }],
    "name": "transferOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  { "inputs": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" },
  {
    "inputs": [{ "internalType": "uint256", "name": "amount", "type": "uint256" }],
    "name": "withdraw",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  }
]
