{
  "ERC20": {
    "balanceOf": {
      "constant": true,
      "inputs": [
        {
          "name": "_owner",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "name": "balance",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    "symbol": {
      "constant": true,
      "inputs": [],
      "name": "symbol",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  },
  "BlueshiftRegistry": {
    "getPortfolios": {
      "inputs": [],
      "name": "getPortfolios",
      "outputs": [
        {
          "components": [
            {
              "internalType": "string",
              "name": "name",
              "type": "string"
            },
            {
              "internalType": "address",
              "name": "contractAddress",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "baseTokenAddress",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "lpTokenAddress",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "lpTokenPrice",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "totalValue",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "tokenCount",
              "type": "uint256"
            },
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "tokenAddress",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "price",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "depositLimit",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "withdrawLimit",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "depositEMAPrice",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "withdrawEMAPrice",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "portfolioShare",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "targetWeight",
                  "type": "uint256"
                }
              ],
              "internalType": "struct BlueshiftPortfolioAndPairRegistry.TokenInfo[]",
              "name": "tokens",
              "type": "tuple[]"
            }
          ],
          "internalType": "struct BlueshiftPortfolioAndPairRegistry.PortfolioInfo[]",
          "name": "",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  },
  "BlueshiftMinter": {
    "token": {
      "inputs": [],
      "name": "token",
      "outputs": [
        {
          "internalType": "contract BlueshiftToken",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    "getAprWeights": {
      "inputs": [],
      "name": "getAprWeights",
      "outputs": [
        {
          "internalType": "uint16[]",
          "name": "",
          "type": "uint16[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    "getFarms": {
      "inputs": [],
      "name": "getFarms",
      "outputs": [
        {
          "internalType": "contract IEarningV2[]",
          "name": "",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    "getStakings": {
      "inputs": [],
      "name": "getStakings",
      "outputs": [
        {
          "internalType": "contract IEarningV2[]",
          "name": "",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    "getStatusFarms": {
      "inputs": [
        {
          "internalType": "address",
          "name": "_user",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_timestamp",
          "type": "uint256"
        }
      ],
      "name": "getStatusFarms",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "multiplier",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "rewardPerBlock",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "accDeposited",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "deposited",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "earned",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "totalReward",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "token",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "farm",
              "type": "address"
            }
          ],
          "internalType": "struct IMinterV3.FarmInfo[]",
          "name": "",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    "getStatusStaking": {
      "inputs": [
        {
          "internalType": "address",
          "name": "_user",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_timestamp",
          "type": "uint256"
        }
      ],
      "name": "getStatusStaking",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "multiplier",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "rewardPerBlock",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "accDeposited",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "deposited",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "earned",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "totalReward",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "token",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "farm",
              "type": "address"
            }
          ],
          "internalType": "struct IMinterV3.FarmInfo[]",
          "name": "",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  },
  "BlueshiftEarning": {
    "getAccDeposit": {
      "inputs": [],
      "name": "getAccDeposit",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    "getToken": {
      "inputs": [],
      "name": "getToken",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  }
}