[
  {
    "inputs": [
      {
        "internalType": "contract IMasterChef",
        "name": "chef_",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "maker_",
        "type": "address"
      },
      {
        "internalType": "contract IERC20",
        "name": "joe_",
        "type": "address"
      },
      {
        "internalType": "contract IERC20",
        "name": "WAVAX_",
        "type": "address"
      },
      {
        "internalType": "contract IFactory",
        "name": "joeFactory_",
        "type": "address"
      },
      {
        "internalType": "contract IFactory",
        "name": "pangolinFactory_",
        "type": "address"
      },
      {
        "internalType": "contract IERC20",
        "name": "bar_",
        "type": "address"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "inputs": [],
    "name": "WAVAX",
    "outputs": [
      {
        "internalType": "contract IERC20",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "bar",
    "outputs": [
      {
        "internalType": "contract IERC20",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "chef",
    "outputs": [
      {
        "internalType": "contract IMasterChef",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "who",
        "type": "address"
      },
      {
        "internalType": "address[]",
        "name": "addresses",
        "type": "address[]"
      }
    ],
    "name": "findBalances",
    "outputs": [
      {
        "components": [
          {
            "internalType": "contract IERC20",
            "name": "token",
            "type": "address"
          },
          {
            "internalType": "uint256",
            "name": "balance",
            "type": "uint256"
          }
        ],
        "internalType": "struct BoringHelperV1.Balance[]",
        "name": "",
        "type": "tuple[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "who",
        "type": "address"
      },
      {
        "internalType": "uint256[]",
        "name": "pids",
        "type": "uint256[]"
      }
    ],
    "name": "findPools",
    "outputs": [
      {
        "components": [
          {
            "internalType": "uint256",
            "name": "pid",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "balance",
            "type": "uint256"
          }
        ],
        "internalType": "struct BoringHelperV1.PoolFound[]",
        "name": "",
        "type": "tuple[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "contract IERC20",
        "name": "token",
        "type": "address"
      }
    ],
    "name": "getAVAXRate",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "who",
        "type": "address"
      },
      {
        "internalType": "contract IERC20[]",
        "name": "addresses",
        "type": "address[]"
      }
    ],
    "name": "getBalances",
    "outputs": [
      {
        "components": [
          {
            "internalType": "contract IERC20",
            "name": "token",
            "type": "address"
          },
          {
            "internalType": "uint256",
            "name": "totalSupply",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "balance",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "nonce",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "rate",
            "type": "uint256"
          }
        ],
        "internalType": "struct BoringHelperV1.BalanceFull[]",
        "name": "",
        "type": "tuple[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "contract IFactory",
        "name": "factory",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "fromID",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "toID",
        "type": "uint256"
      }
    ],
    "name": "getPairs",
    "outputs": [
      {
        "components": [
          {
            "internalType": "contract IPair",
            "name": "token",
            "type": "address"
          },
          {
            "internalType": "contract IERC20",
            "name": "token0",
            "type": "address"
          },
          {
            "internalType": "contract IERC20",
            "name": "token1",
            "type": "address"
          },
          {
            "internalType": "uint256",
            "name": "totalSupply",
            "type": "uint256"
          }
        ],
        "internalType": "struct BoringHelperV1.PairBase[]",
        "name": "",
        "type": "tuple[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256[]",
        "name": "pids",
        "type": "uint256[]"
      }
    ],
    "name": "getPools",
    "outputs": [
      {
        "components": [
          {
            "internalType": "uint256",
            "name": "totalAllocPoint",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "poolLength",
            "type": "uint256"
          }
        ],
        "internalType": "struct BoringHelperV1.PoolsInfo",
        "name": "",
        "type": "tuple"
      },
      {
        "components": [
          {
            "internalType": "uint256",
            "name": "pid",
            "type": "uint256"
          },
          {
            "internalType": "contract IPair",
            "name": "lpToken",
            "type": "address"
          },
          {
            "internalType": "uint256",
            "name": "allocPoint",
            "type": "uint256"
          },
          {
            "internalType": "bool",
            "name": "isPair",
            "type": "bool"
          },
          {
            "internalType": "contract IFactory",
            "name": "factory",
            "type": "address"
          },
          {
            "internalType": "contract IERC20",
            "name": "token0",
            "type": "address"
          },
          {
            "internalType": "contract IERC20",
            "name": "token1",
            "type": "address"
          },
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "symbol",
            "type": "string"
          },
          {
            "internalType": "uint8",
            "name": "decimals",
            "type": "uint8"
          }
        ],
        "internalType": "struct BoringHelperV1.PoolInfo[]",
        "name": "",
        "type": "tuple[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address[]",
        "name": "addresses",
        "type": "address[]"
      }
    ],
    "name": "getTokenInfo",
    "outputs": [
      {
        "components": [
          {
            "internalType": "contract IERC20",
            "name": "token",
            "type": "address"
          },
          {
            "internalType": "uint256",
            "name": "decimals",
            "type": "uint256"
          },
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "symbol",
            "type": "string"
          },
          {
            "internalType": "bytes32",
            "name": "DOMAIN_SEPARATOR",
            "type": "bytes32"
          }
        ],
        "internalType": "struct BoringHelperV1.TokenInfo[]",
        "name": "",
        "type": "tuple[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "who",
        "type": "address"
      },
      {
        "internalType": "contract IFactory[]",
        "name": "factoryAddresses",
        "type": "address[]"
      },
      {
        "internalType": "contract IERC20",
        "name": "currency",
        "type": "address"
      },
      {
        "internalType": "address[]",
        "name": "masterContracts",
        "type": "address[]"
      }
    ],
    "name": "getUIInfo",
    "outputs": [
      {
        "components": [
          {
            "internalType": "uint256",
            "name": "avaxBalance",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "joeBalance",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "joeBarBalance",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "xjoeBalance",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "xjoeSupply",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "joeBarAllowance",
            "type": "uint256"
          },
          {
            "components": [
              {
                "internalType": "contract IFactory",
                "name": "factory",
                "type": "address"
              },
              {
                "internalType": "uint256",
                "name": "allPairsLength",
                "type": "uint256"
              }
            ],
            "internalType": "struct BoringHelperV1.Factory[]",
            "name": "factories",
            "type": "tuple[]"
          },
          {
            "internalType": "uint256",
            "name": "avaxRate",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "joeRate",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "btcRate",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "pendingJoe",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "blockTimeStamp",
            "type": "uint256"
          }
        ],
        "internalType": "struct BoringHelperV1.UIInfo",
        "name": "",
        "type": "tuple"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "joe",
    "outputs": [
      {
        "internalType": "contract IERC20",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "joeFactory",
    "outputs": [
      {
        "internalType": "contract IFactory",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "maker",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "owner",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "pangolinFactory",
    "outputs": [
      {
        "internalType": "contract IFactory",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "who",
        "type": "address"
      },
      {
        "internalType": "contract IPair[]",
        "name": "addresses",
        "type": "address[]"
      }
    ],
    "name": "pollPairs",
    "outputs": [
      {
        "components": [
          {
            "internalType": "contract IPair",
            "name": "token",
            "type": "address"
          },
          {
            "internalType": "uint256",
            "name": "reserve0",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "reserve1",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "totalSupply",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "balance",
            "type": "uint256"
          }
        ],
        "internalType": "struct BoringHelperV1.PairPoll[]",
        "name": "",
        "type": "tuple[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "who",
        "type": "address"
      },
      {
        "internalType": "uint256[]",
        "name": "pids",
        "type": "uint256[]"
      }
    ],
    "name": "pollPools",
    "outputs": [
      {
        "components": [
          {
            "internalType": "uint256",
            "name": "pid",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "balance",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "totalSupply",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "lpBalance",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "lpTotalSupply",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "lpAllowance",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "reserve0",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "reserve1",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "rewardDebt",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "pending",
            "type": "uint256"
          }
        ],
        "internalType": "struct BoringHelperV1.UserPoolInfo[]",
        "name": "",
        "type": "tuple[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "contract IMasterChef",
        "name": "chef_",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "maker_",
        "type": "address"
      },
      {
        "internalType": "contract IERC20",
        "name": "joe_",
        "type": "address"
      },
      {
        "internalType": "contract IERC20",
        "name": "WAVAX_",
        "type": "address"
      },
      {
        "internalType": "contract IFactory",
        "name": "joeFactory_",
        "type": "address"
      },
      {
        "internalType": "contract IFactory",
        "name": "pangolinFactory_",
        "type": "address"
      },
      {
        "internalType": "contract IERC20",
        "name": "bar_",
        "type": "address"
      }
    ],
    "name": "setContracts",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  }
]
