[
  {
    "inputs": [
      {
        "internalType": "contract IIFtso",
        "name": "_ftsoContract",
        "type": "address"
      }
    ],
    "name": "addFtso",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getAllCurrentPrices",
    "outputs": [
      {
        "components": [
          {
            "internalType": "uint256",
            "name": "ftsoIndex",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "price",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "decimals",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "timestamp",
            "type": "uint256"
          }
        ],
        "internalType": "struct IFtsoRegistry.PriceInfo[]",
        "name": "",
        "type": "tuple[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "_symbol",
        "type": "string"
      }
    ],
    "name": "getCurrentPrice",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "_price",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_timestamp",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_ftsoIndex",
        "type": "uint256"
      }
    ],
    "name": "getCurrentPrice",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "_price",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_timestamp",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_assetIndex",
        "type": "uint256"
      }
    ],
    "name": "getCurrentPriceWithDecimals",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "_price",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_timestamp",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_assetPriceUsdDecimals",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "_symbol",
        "type": "string"
      }
    ],
    "name": "getCurrentPriceWithDecimals",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "_price",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_timestamp",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_assetPriceUsdDecimals",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256[]",
        "name": "_indices",
        "type": "uint256[]"
      }
    ],
    "name": "getCurrentPricesByIndices",
    "outputs": [
      {
        "components": [
          {
            "internalType": "uint256",
            "name": "ftsoIndex",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "price",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "decimals",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "timestamp",
            "type": "uint256"
          }
        ],
        "internalType": "struct IFtsoRegistry.PriceInfo[]",
        "name": "",
        "type": "tuple[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string[]",
        "name": "_symbols",
        "type": "string[]"
      }
    ],
    "name": "getCurrentPricesBySymbols",
    "outputs": [
      {
        "components": [
          {
            "internalType": "uint256",
            "name": "ftsoIndex",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "price",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "decimals",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "timestamp",
            "type": "uint256"
          }
        ],
        "internalType": "struct IFtsoRegistry.PriceInfo[]",
        "name": "",
        "type": "tuple[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_ftsoIndex",
        "type": "uint256"
      }
    ],
    "name": "getFtso",
    "outputs": [
      {
        "internalType": "contract IIFtso",
        "name": "_activeFtsoAddress",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "_symbol",
        "type": "string"
      }
    ],
    "name": "getFtsoBySymbol",
    "outputs": [
      {
        "internalType": "contract IIFtso",
        "name": "_activeFtsoAddress",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "_symbol",
        "type": "string"
      }
    ],
    "name": "getFtsoIndex",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "_assetIndex",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_ftsoIndex",
        "type": "uint256"
      }
    ],
    "name": "getFtsoSymbol",
    "outputs": [
      {
        "internalType": "string",
        "name": "_symbol",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256[]",
        "name": "_indices",
        "type": "uint256[]"
      }
    ],
    "name": "getFtsos",
    "outputs": [
      {
        "internalType": "contract IFtsoGenesis[]",
        "name": "_ftsos",
        "type": "address[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getSupportedFtsos",
    "outputs": [
      {
        "internalType": "contract IIFtso[]",
        "name": "_ftsos",
        "type": "address[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getSupportedIndices",
    "outputs": [
      {
        "internalType": "uint256[]",
        "name": "_supportedIndices",
        "type": "uint256[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getSupportedIndicesAndFtsos",
    "outputs": [
      {
        "internalType": "uint256[]",
        "name": "_supportedIndices",
        "type": "uint256[]"
      },
      {
        "internalType": "contract IIFtso[]",
        "name": "_ftsos",
        "type": "address[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getSupportedIndicesAndSymbols",
    "outputs": [
      {
        "internalType": "uint256[]",
        "name": "_supportedIndices",
        "type": "uint256[]"
      },
      {
        "internalType": "string[]",
        "name": "_supportedSymbols",
        "type": "string[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getSupportedIndicesSymbolsAndFtsos",
    "outputs": [
      {
        "internalType": "uint256[]",
        "name": "_supportedIndices",
        "type": "uint256[]"
      },
      {
        "internalType": "string[]",
        "name": "_supportedSymbols",
        "type": "string[]"
      },
      {
        "internalType": "contract IIFtso[]",
        "name": "_ftsos",
        "type": "address[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getSupportedSymbols",
    "outputs": [
      {
        "internalType": "string[]",
        "name": "_supportedSymbols",
        "type": "string[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getSupportedSymbolsAndFtsos",
    "outputs": [
      {
        "internalType": "string[]",
        "name": "_supportedSymbols",
        "type": "string[]"
      },
      {
        "internalType": "contract IIFtso[]",
        "name": "_ftsos",
        "type": "address[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "contract IIFtso",
        "name": "_ftso",
        "type": "address"
      }
    ],
    "name": "removeFtso",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  }
]
