Skip to content

Instantly share code, notes, and snippets.

@sharad-s
Created July 21, 2021 01:03
Show Gist options
  • Save sharad-s/593c63f6b3b78f978efa65fb8d29a6cb to your computer and use it in GitHub Desktop.
Save sharad-s/593c63f6b3b78f978efa65fb8d29a6cb to your computer and use it in GitHub Desktop.
FusePoolLens.sol
// SPDX-License-Identifier: UNLICENSED
// !! THIS FILE WAS AUTOGENERATED BY abi-to-sol. SEE BELOW FOR SOURCE. !!
pragma solidity >=0.5.0 <0.9.0;
pragma experimental ABIEncoderV2;
struct FusePoolDirectory_FusePool {
string name;
address creator;
address comptroller;
uint256 blockPosted;
uint256 timestampPosted;
}
struct FusePoolLens_FusePoolAsset {
address cToken;
address underlyingToken;
string underlyingName;
string underlyingSymbol;
uint256 underlyingDecimals;
uint256 underlyingBalance;
uint256 supplyRatePerBlock;
uint256 borrowRatePerBlock;
uint256 totalSupply;
uint256 totalBorrow;
uint256 supplyBalance;
uint256 borrowBalance;
uint256 liquidity;
bool membership;
uint256 exchangeRate;
uint256 underlyingPrice;
address oracle;
uint256 collateralFactor;
uint256 reserveFactor;
uint256 adminFee;
uint256 fuseFee;
}
struct FusePoolLens_FusePoolUser {
address account;
uint256 totalBorrow;
uint256 totalCollateral;
uint256 health;
FusePoolLens_FusePoolAsset[] assets;
}
struct FusePoolLens_CTokenOwnership {
address cToken;
address admin;
bool adminHasRights;
bool fuseAdminHasRights;
}
interface MyInterface {
function directory() external view returns (address);
function initialize(address _directory) external;
function getPublicPoolsWithData()
external
returns (
uint256[] memory,
FusePoolDirectory_FusePool[] memory,
uint256[] memory,
uint256[] memory,
address[][] memory,
string[][] memory,
bool[] memory
);
function getPoolsByAccountWithData(address account)
external
returns (
uint256[] memory,
FusePoolDirectory_FusePool[] memory,
uint256[] memory,
uint256[] memory,
address[][] memory,
string[][] memory,
bool[] memory
);
function getPoolSummary(address comptroller)
external
returns (
uint256,
uint256,
address[] memory,
string[] memory
);
function getPoolAssetsWithData(address comptroller)
external
returns (FusePoolLens_FusePoolAsset[] memory);
function getPublicPoolUsersWithData(uint256 maxHealth)
external
returns (
address[] memory,
FusePoolLens_FusePoolUser[][] memory,
uint256[] memory,
uint256[] memory,
bool[] memory
);
function getPoolUsersWithData(address[] comptrollers, uint256 maxHealth)
external
returns (
FusePoolLens_FusePoolUser[][] memory,
uint256[] memory,
uint256[] memory
);
function getPoolUsersWithData(address comptroller, uint256 maxHealth)
external
returns (
FusePoolLens_FusePoolUser[] memory,
uint256,
uint256
);
function getPoolsBySupplier(address account)
external
view
returns (uint256[] memory, FusePoolDirectory_FusePool[] memory);
function getPoolsBySupplierWithData(address account)
external
returns (
uint256[] memory,
FusePoolDirectory_FusePool[] memory,
uint256[] memory,
uint256[] memory,
address[][] memory,
string[][] memory,
bool[] memory
);
function getUserSummary(address account)
external
returns (
uint256,
uint256,
bool
);
function getPoolUserSummary(address comptroller, address account)
external
returns (uint256, uint256);
function getWhitelistedPoolsByAccount(address account)
external
view
returns (uint256[] memory, FusePoolDirectory_FusePool[] memory);
function getWhitelistedPoolsByAccountWithData(address account)
external
returns (
uint256[] memory,
FusePoolDirectory_FusePool[] memory,
uint256[] memory,
uint256[] memory,
address[][] memory,
string[][] memory,
bool[] memory
);
function getPoolOwnership(address comptroller)
external
view
returns (
address,
bool,
bool,
FusePoolLens_CTokenOwnership[] memory
);
}
// THIS FILE WAS AUTOGENERATED FROM THE FOLLOWING ABI JSON:
/*
[{"inputs":[],"name":"directory","outputs":[{"internalType":"contract FusePoolDirectory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract FusePoolDirectory","name":"_directory","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getPublicPoolsWithData","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"creator","type":"address"},{"internalType":"address","name":"comptroller","type":"address"},{"internalType":"uint256","name":"blockPosted","type":"uint256"},{"internalType":"uint256","name":"timestampPosted","type":"uint256"}],"internalType":"struct FusePoolDirectory.FusePool[]","name":"","type":"tuple[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"address[][]","name":"","type":"address[][]"},{"internalType":"string[][]","name":"","type":"string[][]"},{"internalType":"bool[]","name":"","type":"bool[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getPoolsByAccountWithData","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"creator","type":"address"},{"internalType":"address","name":"comptroller","type":"address"},{"internalType":"uint256","name":"blockPosted","type":"uint256"},{"internalType":"uint256","name":"timestampPosted","type":"uint256"}],"internalType":"struct FusePoolDirectory.FusePool[]","name":"","type":"tuple[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"address[][]","name":"","type":"address[][]"},{"internalType":"string[][]","name":"","type":"string[][]"},{"internalType":"bool[]","name":"","type":"bool[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract Comptroller","name":"comptroller","type":"address"}],"name":"getPoolSummary","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"string[]","name":"","type":"string[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract Comptroller","name":"comptroller","type":"address"}],"name":"getPoolAssetsWithData","outputs":[{"components":[{"internalType":"address","name":"cToken","type":"address"},{"internalType":"address","name":"underlyingToken","type":"address"},{"internalType":"string","name":"underlyingName","type":"string"},{"internalType":"string","name":"underlyingSymbol","type":"string"},{"internalType":"uint256","name":"underlyingDecimals","type":"uint256"},{"internalType":"uint256","name":"underlyingBalance","type":"uint256"},{"internalType":"uint256","name":"supplyRatePerBlock","type":"uint256"},{"internalType":"uint256","name":"borrowRatePerBlock","type":"uint256"},{"internalType":"uint256","name":"totalSupply","type":"uint256"},{"internalType":"uint256","name":"totalBorrow","type":"uint256"},{"internalType":"uint256","name":"supplyBalance","type":"uint256"},{"internalType":"uint256","name":"borrowBalance","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"bool","name":"membership","type":"bool"},{"internalType":"uint256","name":"exchangeRate","type":"uint256"},{"internalType":"uint256","name":"underlyingPrice","type":"uint256"},{"internalType":"address","name":"oracle","type":"address"},{"internalType":"uint256","name":"collateralFactor","type":"uint256"},{"internalType":"uint256","name":"reserveFactor","type":"uint256"},{"internalType":"uint256","name":"adminFee","type":"uint256"},{"internalType":"uint256","name":"fuseFee","type":"uint256"}],"internalType":"struct FusePoolLens.FusePoolAsset[]","name":"","type":"tuple[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxHealth","type":"uint256"}],"name":"getPublicPoolUsersWithData","outputs":[{"internalType":"address[]","name":"","type":"address[]"},{"components":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"totalBorrow","type":"uint256"},{"internalType":"uint256","name":"totalCollateral","type":"uint256"},{"internalType":"uint256","name":"health","type":"uint256"},{"components":[{"internalType":"address","name":"cToken","type":"address"},{"internalType":"address","name":"underlyingToken","type":"address"},{"internalType":"string","name":"underlyingName","type":"string"},{"internalType":"string","name":"underlyingSymbol","type":"string"},{"internalType":"uint256","name":"underlyingDecimals","type":"uint256"},{"internalType":"uint256","name":"underlyingBalance","type":"uint256"},{"internalType":"uint256","name":"supplyRatePerBlock","type":"uint256"},{"internalType":"uint256","name":"borrowRatePerBlock","type":"uint256"},{"internalType":"uint256","name":"totalSupply","type":"uint256"},{"internalType":"uint256","name":"totalBorrow","type":"uint256"},{"internalType":"uint256","name":"supplyBalance","type":"uint256"},{"internalType":"uint256","name":"borrowBalance","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"bool","name":"membership","type":"bool"},{"internalType":"uint256","name":"exchangeRate","type":"uint256"},{"internalType":"uint256","name":"underlyingPrice","type":"uint256"},{"internalType":"address","name":"oracle","type":"address"},{"internalType":"uint256","name":"collateralFactor","type":"uint256"},{"internalType":"uint256","name":"reserveFactor","type":"uint256"},{"internalType":"uint256","name":"adminFee","type":"uint256"},{"internalType":"uint256","name":"fuseFee","type":"uint256"}],"internalType":"struct FusePoolLens.FusePoolAsset[]","name":"assets","type":"tuple[]"}],"internalType":"struct FusePoolLens.FusePoolUser[][]","name":"","type":"tuple[][]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bool[]","name":"","type":"bool[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract Comptroller[]","name":"comptrollers","type":"address[]"},{"internalType":"uint256","name":"maxHealth","type":"uint256"}],"name":"getPoolUsersWithData","outputs":[{"components":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"totalBorrow","type":"uint256"},{"internalType":"uint256","name":"totalCollateral","type":"uint256"},{"internalType":"uint256","name":"health","type":"uint256"},{"components":[{"internalType":"address","name":"cToken","type":"address"},{"internalType":"address","name":"underlyingToken","type":"address"},{"internalType":"string","name":"underlyingName","type":"string"},{"internalType":"string","name":"underlyingSymbol","type":"string"},{"internalType":"uint256","name":"underlyingDecimals","type":"uint256"},{"internalType":"uint256","name":"underlyingBalance","type":"uint256"},{"internalType":"uint256","name":"supplyRatePerBlock","type":"uint256"},{"internalType":"uint256","name":"borrowRatePerBlock","type":"uint256"},{"internalType":"uint256","name":"totalSupply","type":"uint256"},{"internalType":"uint256","name":"totalBorrow","type":"uint256"},{"internalType":"uint256","name":"supplyBalance","type":"uint256"},{"internalType":"uint256","name":"borrowBalance","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"bool","name":"membership","type":"bool"},{"internalType":"uint256","name":"exchangeRate","type":"uint256"},{"internalType":"uint256","name":"underlyingPrice","type":"uint256"},{"internalType":"address","name":"oracle","type":"address"},{"internalType":"uint256","name":"collateralFactor","type":"uint256"},{"internalType":"uint256","name":"reserveFactor","type":"uint256"},{"internalType":"uint256","name":"adminFee","type":"uint256"},{"internalType":"uint256","name":"fuseFee","type":"uint256"}],"internalType":"struct FusePoolLens.FusePoolAsset[]","name":"assets","type":"tuple[]"}],"internalType":"struct FusePoolLens.FusePoolUser[][]","name":"","type":"tuple[][]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract Comptroller","name":"comptroller","type":"address"},{"internalType":"uint256","name":"maxHealth","type":"uint256"}],"name":"getPoolUsersWithData","outputs":[{"components":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"totalBorrow","type":"uint256"},{"internalType":"uint256","name":"totalCollateral","type":"uint256"},{"internalType":"uint256","name":"health","type":"uint256"},{"components":[{"internalType":"address","name":"cToken","type":"address"},{"internalType":"address","name":"underlyingToken","type":"address"},{"internalType":"string","name":"underlyingName","type":"string"},{"internalType":"string","name":"underlyingSymbol","type":"string"},{"internalType":"uint256","name":"underlyingDecimals","type":"uint256"},{"internalType":"uint256","name":"underlyingBalance","type":"uint256"},{"internalType":"uint256","name":"supplyRatePerBlock","type":"uint256"},{"internalType":"uint256","name":"borrowRatePerBlock","type":"uint256"},{"internalType":"uint256","name":"totalSupply","type":"uint256"},{"internalType":"uint256","name":"totalBorrow","type":"uint256"},{"internalType":"uint256","name":"supplyBalance","type":"uint256"},{"internalType":"uint256","name":"borrowBalance","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"bool","name":"membership","type":"bool"},{"internalType":"uint256","name":"exchangeRate","type":"uint256"},{"internalType":"uint256","name":"underlyingPrice","type":"uint256"},{"internalType":"address","name":"oracle","type":"address"},{"internalType":"uint256","name":"collateralFactor","type":"uint256"},{"internalType":"uint256","name":"reserveFactor","type":"uint256"},{"internalType":"uint256","name":"adminFee","type":"uint256"},{"internalType":"uint256","name":"fuseFee","type":"uint256"}],"internalType":"struct FusePoolLens.FusePoolAsset[]","name":"assets","type":"tuple[]"}],"internalType":"struct FusePoolLens.FusePoolUser[]","name":"","type":"tuple[]"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getPoolsBySupplier","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"creator","type":"address"},{"internalType":"address","name":"comptroller","type":"address"},{"internalType":"uint256","name":"blockPosted","type":"uint256"},{"internalType":"uint256","name":"timestampPosted","type":"uint256"}],"internalType":"struct FusePoolDirectory.FusePool[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getPoolsBySupplierWithData","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"creator","type":"address"},{"internalType":"address","name":"comptroller","type":"address"},{"internalType":"uint256","name":"blockPosted","type":"uint256"},{"internalType":"uint256","name":"timestampPosted","type":"uint256"}],"internalType":"struct FusePoolDirectory.FusePool[]","name":"","type":"tuple[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"address[][]","name":"","type":"address[][]"},{"internalType":"string[][]","name":"","type":"string[][]"},{"internalType":"bool[]","name":"","type":"bool[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getUserSummary","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract Comptroller","name":"comptroller","type":"address"},{"internalType":"address","name":"account","type":"address"}],"name":"getPoolUserSummary","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getWhitelistedPoolsByAccount","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"creator","type":"address"},{"internalType":"address","name":"comptroller","type":"address"},{"internalType":"uint256","name":"blockPosted","type":"uint256"},{"internalType":"uint256","name":"timestampPosted","type":"uint256"}],"internalType":"struct FusePoolDirectory.FusePool[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getWhitelistedPoolsByAccountWithData","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"creator","type":"address"},{"internalType":"address","name":"comptroller","type":"address"},{"internalType":"uint256","name":"blockPosted","type":"uint256"},{"internalType":"uint256","name":"timestampPosted","type":"uint256"}],"internalType":"struct FusePoolDirectory.FusePool[]","name":"","type":"tuple[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"address[][]","name":"","type":"address[][]"},{"internalType":"string[][]","name":"","type":"string[][]"},{"internalType":"bool[]","name":"","type":"bool[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract Comptroller","name":"comptroller","type":"address"}],"name":"getPoolOwnership","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bool","name":"","type":"bool"},{"internalType":"bool","name":"","type":"bool"},{"components":[{"internalType":"address","name":"cToken","type":"address"},{"internalType":"address","name":"admin","type":"address"},{"internalType":"bool","name":"adminHasRights","type":"bool"},{"internalType":"bool","name":"fuseAdminHasRights","type":"bool"}],"internalType":"struct FusePoolLens.CTokenOwnership[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"}]
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment